引入 Redis

简介

Jedis

Jedis 是早期的 Redis 的 Java 实现客户端,提供了比较全面的 Redis 命令的支持,其官方网址是:http://tool.oschina.net/uploads/apidocs/redis/clients/jedis/Jedis.html

优点:支持全面的 Redis 操作特性(可以理解为 API 比较全面)。

缺点:使用阻塞的 I/O,且其方法调用都是同步的,程序流需要等到 sockets 处理完 I/O 才能执行,不支持异步;

Jedis 客户端实例不是线程安全的,所以需要通过创建连接池来使用 Jedis。

lettuce

lettuce 是一种可扩展的线程安全的 Redis 客户端,支持异步模式。如果避免阻塞和事务操作,如 BLPOP 和 MULTI/EXEC,多个线程就可以共享一个连接。lettuce 底层基于 Netty,支持高级的 Redis 特性,比如哨兵,集群,管道,自动重新连接和 Redis 数据模型。lettuce 的官网地址是:https://lettuce.io/

优点:支持同步异步通信模式;

Lettuce 的 API 是线程安全的,如果不是执行阻塞和事务操作,如 BLPOP 和 MULTI/EXEC,多个线程就可以共享一个连接。

RedisTemplate

Spring 对 Redis 操作的一层封装,他的底层是通过 Jedis、Lettuce 实现的。如果我们使用 spring-boot-starter-data-redis 则默认时 Lettuce。

RedisTemplate 集群

把单机的 yml 文件改一下就可以了

spring:
  data:
    redis:
      database: 0
      # 没有密码
      #password: 123456
      cluster:
        # 获取失败 最大重定向次数
        max-redirects: 3
        nodes:
          - 192.168.64.100:6381
          - 192.168.64.100:6382
          - 192.168.64.100:6383
          - 192.168.64.100:6384
          - 192.168.64.100:6385
      lettuce:
        pool:
          max-active: 8
          max-wait: -1ms
          max-idle: 8
          min-idle: 0
        cluster:
          refresh:
            #支持集群拓扑动态感应刷新,自适应拓扑刷新是否使用所有可用的更新,默认false关闭
            adaptive: true
            #刷新周期
            period: 2000

RedisTemplate 单机

pom.xml 文件引入依赖
        <!--SpringBoot与Redis整合依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-pool2</artifactId>
        </dependency>
yml 配置
spring:
  data:
    redis:
      database: 0
      host: 192.168.64.100
      port: 6379
      # 没有密码
      #password: 123456
      lettuce:
        pool:
          max-active: 8
          max-wait: -1ms
          max-idle: 8
          min-idle: 0
OrderController
@RestController
public class OrderController {
   
   
	@Autowired
	private OrderService orderService;
	@PostMapping("/addOrder")
	public Long addOrder(){
   
   
		//测试就不传参数了
		return orderService.addOrder();
	}
	@GetMapping("/getOrder")
	public String getOrder(Long id){
   
   
		return orderService.getOrder(id);
	}
	//路径传参请求---->   http://localhost:8080/getOrderById/164
	@GetMapping("/getOrderById/{id}")
	public String getOrderByid(@PathVariable("id") Integer id){
   
   
		return orderService.getOrder(Long.valueOf(id));
	}
}
OrderService
public interface OrderService {
   
   
	long addOrder();
	String getOrder(Long id);
}
OrderServiceImpl
@Service
public class OrderServiceImpl implements OrderService {
   
   
	public static final String ORDER_KEY = "order:"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值