代码拉取完成,页面将自动刷新
基于SpringBoot2.X + lettuce
实现Redis集成、多库实时切换操作
├──knife4j-redis-lettuce
├──knife4j-redis-lettuce-demo -- SpringBoot测试模块Demo
├──knife4j-redis-lettuce-stater -- lettuce多库切换核心模块
Maven依赖集成
<dependency>
<groupId>com.zyll.lp.redis</groupId>
<artifactId>redisUtils</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
application.yml
或properties
如下配置
# 此处Key不可改变
knife4j:
redis:
# 是否采用json序列化发方式,若不采用则为JDK序列化
#jsonSerialType: 'Fastjson'
host: localhost
password: knife # 根据自己设定进行修改
port: 6379
databases: [0,1,2,3,4,5,6] # 要使用的库,会根据此处填写的库生成redisTemplate
timeout: 60s
lettuce: # lettuce基于netty,线程安全,支持并发
pool:
max-active: 50
max-wait: -1ms
max-idle: 8
min-idle: 0
完善中....
@Autowired private RedisValUtil redisValUtil;
/**
* 单值操作测试
* @param key
* @return
*/
@GetMapping("/val/{key}")
public String test(@PathVariable("key") String key){
redisValUtil.set(key , "默认库设置");
redisValUtil.set(1 , key , "指定1库设置值");
//get值
String db1SetKey = redisValUtil.get(1, key);
System.out.println("指定1库获取值:" + db1SetKey);
//删除后再get
redisValUtil.delete(1 , key);
String db1SetKey2 = redisValUtil.get(1, key);
System.out.println("指定1库获取已经被删除的值:" + db1SetKey2);
return "ok";
}
@Autowired
private RedisListUtil redisListUtil;
/**
* 集合操作测试
* @param key
* @return
*/
@GetMapping("/list/{key}")
public String listTest(@PathVariable("key") String key){
Book book1 = new Book();
book1.setId(1);
book1.setName("深入理解JVM(第三版)");
Book book2 = new Book();
book2.setId(2);
book2.setName("SpringBoot从实战到精通");
Book [] array = new Book[]{book1 , book2};
redisListUtil.insert(3 , key , array);
List<Book> listAll = redisListUtil.getListAll(3, key, Book.class);
System.out.println("redis库中取出的值:" + listAll);
return "ok";
}
@Autowired
private RedisHashUtil redisHashUtil;
/**
* hash操作测试
* @param key
* @return
*/
@GetMapping("/hash/{key}")
public String hashTest(@PathVariable("key") String key){
Map<String,Book> map = new HashMap<>();
Book book1 = new Book();
book1.setId(4);
book1.setName("深入理解JVM(第二版)");
Book book2 = new Book();
book2.setId(5);
book2.setName("redis从实战到精通");
map.put("A" , book1);
map.put("B" , book2);
redisHashUtil.addMapAll(5 , key , map);
Map<String, Book> mapAll = redisHashUtil.getMapAll(5 , key, String.class, Book.class);
System.out.println("从redis中取出Map的值:" + mapAll);
//往第6库添加Hash
redisHashUtil.addMapOne(6 , key , "W" , book1);
Long w = redisHashUtil.deleteMapVal(6, key, "W");
System.out.println("删除hash条数:" + w);
return "ok";
}
@Autowired
private RedisSetUtil redisSetUtil;
/**
* 集合set操作测试
* @param key
* @return
*/
@GetMapping("/set/{key}")
public String setTest(@PathVariable("key") String key){
Book book1 = new Book();
book1.setId(1);
book1.setName("深入理解JVM(第三版)");
Book book2 = new Book();
book2.setId(2);
book2.setName("SpringBoot从实战到精通");
Book [] array = new Book[]{book1 , book2};
redisSetUtil.add(3 , key , array);
Set<Object> setAll = redisSetUtil.getAll(3, key);
System.out.println("redis库中取出的值:" + setAll);
return "ok";
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。