tonglin0325的个人主页

SpringBoot学习笔记——Redis Template

Springboot可以通过redis template和redis进行交互,使用方法如下

 

可以参考这个系列的文章:

【快学springboot】11.整合redis实现session共享

【快学springboot】13.操作redis之String数据结构

【快学springboot】14.操作redis之list

还有python版本的redis实战

1
2
https://github.com/7-sevens/Developer-Books/blob/master/Redis/Redis%E5%AE%9E%E6%88%98.pdf

在pom中引入

1
2
3
4
5
6
<!-- redis -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>

并在application.conf中配置

1
2
3
4
5
6
7
8
# redis
spring.redis.host=localhost
spring.redis.port=6379
spring.redis.password=xxxx
spring.redis.database=1
spring.redis.jedis.pool.max-active=10
spring.redis.timeout=3000ms

初始化rest template

1
2
3
@Autowired
private RedisTemplate<String, String> redisTemplate;

 redis有以下基本类型

 

STRING操作

【快学springboot】13.操作redis之String数据结构

 

LIST操作

【快学springboot】14.操作redis之list

 

SET操作

 

HASH操作

SpringBoot系列教程之RedisTemplate Hash数据结构使用教程

 

ZSET操作

SpringBoot高级篇Redis之ZSet数据结构使用姿势

 

在使用redis实现自动补全功能

python版本可以参考《redis实战》或者 基于Redis的自动补全算法

java版本可以参考:使用Redis实现中英文自动补全功能详解

hue的自动补全可以参考:聊一聊代码的智能提示

基本原理就是利用了redis的zset类型,当zset的value都是0的时候,key的排序为字典序,

这时候如果查询的前缀是”ab”,这时往zset中插入2个string,”aa{“和”ab{“,并使用zrange拿到这两字符的index,由于z的下一个字符为{,所以这2个index之间的字符必定前缀为”ab”

但是如果这样的话在并对的条件下会有问题,所以真实实现中一般会在 ”aa{“和”ab{“ 后面拼接上uuid,防止覆盖掉别task的成员标记,取到2个index后就立即删除这两个key