Spring整合Jedis使用Redis
Jedis是Redis的java版本客户端的实现,通过它,我们可以轻松的创建一个jedis对象来操作Redis数据库,或者将Redis做为缓存使用。
Maven依赖
Official Releases
1 | <dependency> |
Snapshots
1 | <dependencies> |
基本使用
单节点
- 直连方式
1 | //通过连接和端口号,就可以拿到jedis对象 |
- 连接池方式
1 | //先拿到连接池对象 |
多节点集群
1 | //nodes,需要一个Set集合来存放节点(因为set内是不重复的),实现使用HashSet |
tips:
Spring整合
开发测试时常用单节点模式,需要时切换到集群模式。
单节点
1 | <!-- jedis客户端单机版 --> |
集群
1 | <bean id="redisClient" class="redis.clients.jedis.JedisCluster"> |
为了满足两者直接的切换,需要一个Dao层,提供同一个接口,不同的实现类。
通用接口
1 | public interface IJedisDao { |
单节点模式实现类
1 | package com.SH.Rest.Dao.DaoImpl; |
使用单点模式时的spring配置:
1 | <!-- Redis客户端,单点模式,连接没配置,为默认--> |
集群模式实现类
1 | package com.SH.Rest.Dao.DaoImpl; |
使用集群模式时的spring配置:
1 | <!-- Redis客户端,集群模式,连接池默认配置 --> |
使用示例
缓存的添加不能影响正常的业务逻辑,不管缓存的情况如何,都要保证其他业务逻辑的正常运行,不可中断。
1 |
|
缓存同步
当更新数据库内数据时,需要先把对应的Redis缓存删除(del删除对应key),然后再更新数据库。
缓存是由服务层管理的,服务层需要提供一个删除缓存的服务,后台管理系统修改数据时,Http调用该服务即可。