欢迎来到“雪碧聊技术”CSDN博客!
在这里,您将踏入一个专注于Java开发技术的知识殿堂。无论您是Java编程的初学者,还是具有一定经验的开发者,相信我的博客都能为您提供宝贵的学习资源和实用技巧。作为您的技术向导,我将不断探索Java的深邃世界,分享最新的技术动态、实战经验以及项目心得。
让我们一同在Java的广阔天地中遨游,携手提升技术能力,共创美好未来!感谢您的关注与支持,期待在“雪碧聊技术”与您共同成长!
目录
一、Redis的Java客户端有哪些?
二、Jedis
1、Jedis快速入门
①新建一个maven类型的project
②引入依赖
③建立连接
④测试string
⑤ 释放资源
演示:
总结
2、Jedis连接池
三、SpringDataRedis
1、认识SpringDataRedis
①什么是SpringDataRedis?
②SpringDataRedis提供的RedisTemplate工具类
2、SpringDataRedis(RedisTemplate工具类)的快速入门
①新建一个SpringBoot项目(这一步不是关键)
②引入两个依赖
③配置文件
④注入RedisTemplate对象
⑤编写测试
⑥查看运行结果
3、StringRedisTemplate的使用
①为什么要是用StringRedisTemplate?
②解决方案:使用StringRedisTemplate,来代替RedisTemplate
③使用StringRedisTemplate向redis中,存入对象(JSON格式)
4、StringRedisTemplate操作Hash类型
结语
一、Redis的Java客户端有哪些?
其中Spring Data Redis兼容了Jedis和lettuce。
我们下面就会学习jedis和Spring Data Redis。
二、Jedis
1、Jedis快速入门
①新建一个maven类型的project
②引入依赖
③建立连接
④测试string
⑤ 释放资源
演示:
①引入jedis依赖
这里顺便引入以下junit单元测试的依赖,方便我们后面展示:
②写代码
public class JedisTest {private Jedis jedis;@BeforeEach //在每个@Test方法前执行void setUp(){//1、建立连接jedis = new Jedis("192.168.6.100", 6379);//2、设置密码jedis.auth("123321");//3、选择库jedis.select(0);}@Testvoid testString(){//存入数据String result = jedis.set("name", "虎哥");System.out.println("result = "+result);//操作成功,则返回"OK"String name = jedis.get("name");System.out.println("name = "+name);}@Testvoid testHash(){//插入hash数据jedis.hset("user:1", "name", "Jack");jedis.hset("user:1", "age", "21");//获取数据Map<String, String> map = jedis.hgetAll("user:1");System.out.println(map);}@AfterEach //在每个@Test方法后执行void tearDown(){if(jedis != null){jedis.close();}}
}
两个Test方法的执行结果如下:
总结
2、Jedis连接池
由于jedis本身是线程不安全的,并且频繁地创建和销毁连接会有性能损耗,因此我们推荐大家使用Jedis连接池代替Jedis的直连方式。
工具类编写:
举例:
①编写连接池工具类
新建一个utils包,创建下面的工具类
public class JedisConnectionFactory {private static final JedisPool jedisPool;static{//配置连接池JedisPoolConfig poolConfig = new JedisPoolConfig();poolConfig.setMaxTotal(8);//该连接池最多创建8个连接poolConfig.setMaxIdle(8);//该连接池最多有8个空闲连接poolConfig.setMinIdle(0);//该连接池最少有0个空闲连接poolConfig.setMaxWaitMillis(1000);//当连接池中,没有连接可用,最多等待1000毫秒(1秒)//创建连接池对象jedisPool = new JedisPool(poolConfig,"192.168.6.100", 6379, 1000, "123321");}public static Jedis getJedis(){return jedisPool.getResource();}
}
②使用连接池工具类,来获取连接
之前有的代码意义也变了:
③测试之前的代码
以上就是Jedis的全部内容。
三、SpringDataRedis
1、认识SpringDataRedis
①什么是SpringDataRedis?
②SpringDataRedis提供的RedisTemplate工具类
其中不同的API,会操作Redis不同类型的数据。
2、SpringDataRedis(RedisTemplate工具类)的快速入门
①新建一个SpringBoot项目(这一步不是关键)
②引入两个依赖
③配置文件
默认使用redis的0号库。如果你想选择其他库,请指定库:
注意:此处SpringDataRedis默认使用的是lettuce,如果你想用Jedis实现,就再需要手动导入一下Jedis的依赖。
④注入RedisTemplate对象
⑤编写测试
⑥查看运行结果
以上就是SpringDataRedis的简单使用。
3、StringRedisTemplate的使用
①为什么要是用StringRedisTemplate?
看看上面存的name-虎哥这个值,有没有问题:
为什么存入的键值对,会变成如此的样子?
答案:因为没有进行序列化,就导致原来的内容被剁碎了,于是看起来就好像乱码。
②解决方案:使用StringRedisTemplate,来代替RedisTemplate
③使用StringRedisTemplate向redis中,存入对象(JSON格式)
首先需要引入jackson依赖:
然后,新建一个ObjectMapper的对象:
最后,在业务中,对Redis进行存、取对象时,都要手动转为JSON字符串。
查看结果:
4、StringRedisTemplate操作Hash类型
运行结果:
以上就是RedisTemplate和StringRedisTemplate的全部内容。
结语
至此,Redis基础篇完成了。
下面要开始Redis实战篇了。