Redis基础篇(三)Redis的java客户端

一、Jedis

1、普通jedis

(1)引入依赖
<dependency>
    <groupId>redis.clients</groupId>
    <artifactId>jedis</artifactId>
    <version>4.2.0</version>
</dependency>
(2)建立连接
    private Jedis jedis;

    @BeforeEach
    void setUp() {
        jedis = new Jedis("127.0.0.1", 6379);
        // 密码
        jedis.auth("123456");
        //选择库
        jedis.select(2);
    }

(3) 测试
    @Test
    void jedisString() {
        String set = jedis.set("name", "allen");
        System.err.println(set);
        String name = jedis.get("name");
        System.err.println(name);
    }
(4) 释放资源
    @AfterEach
    void tearDown() {
        if (jedis != null) {
            jedis.close();
        }
    }

2、jedis连接池

public class JedisConFactory {
    private static JedisPool jedisPool = null;

    static {
        //配置连接池
        JedisPoolConfig poolConfig = new JedisPoolConfig();
        //设置最大连接数
        poolConfig.setMaxTotal(8);
        //设置最大空闲数
        poolConfig.setMaxIdle(8);
        //设置最小空闲数
        poolConfig.setMinIdle(0);
        jedisPool = new JedisPool(poolConfig,"127.0.0.1",6379);
    }

    public static Jedis getJedis(){
        return jedisPool.getResource();
    }
    
}

二、 SpirngDataReids

1、特点

  • 提供了对不同Redis客户端的整合(Lettuce和Jedis,默认Lettuce)
  • 提供了RedisTemplate统一API来操作Redis
  • 支持Redis的发布订阅模型
  • 支持Redis哨兵和Redis集群
  • 支持基于Lettuce的响应式编程
  • 支持基于JDK、JSON、字符串、Spring对象的数据序列化和反序列化
  • 支持基于Redis的JDKCollection实现
    在这里插入图片描述

2、快速入门

(1) 引入依赖
<!-- spring boot redis缓存引入 -->
	 <dependency> 
		 <groupId>org.springframework.boot</groupId> 
		 <artifactId>spring-boot-starter-data-redis</artifactId> 
	 </dependency>
  <!-- lecttuce 缓存连接池-->
     <dependency>
	    <groupId>org.apache.commons</groupId> 
	    <artifactId>commons-pool2</artifactId> 
     </dependency>
(2) 添加application.yaml配置
spring:
  redis:
    host: 120.79.157.129
    port: 6379
    database: 2
    # password:  #默认为空
    lettuce:
      pool:
        max-active: 20  #最大连接数,负值表示没有限制,默认8
        max-wait: -1    #最大阻塞等待时间,负值表示没限制,默认-1
        max-idle: 8     #最大空闲连接,默认8
        min-idle: 0     #最小空闲连接,默认0						
(3) 测试
@Configuration
public class RedisConfig {
    @Autowired
    private RedisTemplate redisTemplate;

	//有则取出key值所对应的值
	redisTemplate.opsForValue().get(key)
}

3、序列化问题

RedisTemplate可以接收任意Object作为值写入Redis,只不过写前会把Object写成字节形式,默认是JDK序列化,得到的结果如下:
在这里插入图片描述
解决办法(两种):

(1)自定义RedisTemplate序列化方式

在这里插入图片描述
实现效果:
在这里插入图片描述

(2)StringRedisTemplate

为了节省内存空间,统一使用String序列化器,要求只能存储String类型的key和value。当存储java对象时,手动完成序列化。
在这里插入图片描述

三、Redission

分布式 待。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值