访问redis
依赖
spring-boot-starter-data-redis
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
使用与配置
程序只访问1个redis
如程序只需访问一个redis实例,则可以直接使用spring-boot自动创建的配置,无需配置代码,只需在配置文件中添加配置项。
配置文件
只需在配置文件中设置以下属性(部分属性有默认值,可不配)。
# 基本设置
spring.redis.database=0 # 数据库序号,默认为0
spring.redis.url= # 连接地址(如配置则忽略以下主机名、端口和密码的设置),如redis://user:password@example.com:6379
spring.redis.host=localhost # 主机名或地址,默认为localhost
spring.redis.port=6379 # 端口,默认为6379
spring.redis.password= # 密码
spring.redis.ssl=false # 是否开启ssl,默认不开启
# 连接池设置
spring.redis.pool.max-active=8 # 最大连接数,默认为8
spring.redis.pool.max-idle=8 # 最大idle连接数,默认为8
spring.redis.pool.max-wait=-1 # 连接池耗尽时请求最大等待时间(毫秒数),默认为-1(永久等待)
spring.redis.pool.min-idle=0 # 最小idle连接数,默认为0
# 高可用性设置(单redis实例不需配置)
spring.redis.sentinel.master= # sentinel的master
spring.redis.sentinel.nodes= # sentinel的节点列表,逗号分隔的"地址:端口"对
spring.redis.timeout=0 # 连接超时毫秒数
# 集群设置(单redis实例不需配置)
spring.redis.cluster.max-redirects= # 执行命令时最大重定向次数
spring.redis.cluster.nodes= # 集群节点列表,逗号分隔的"地址:端口"对
使用
使用类型为StringRedisTemplate的bean。
@Autowired
private StringRedisTemplate redisTemplate;
共通操作(不区分类型)
使用RestTemplate实例提供的各方法。
Long delete(Collection<K> keys)
删除keys。
Boolean delete(K key)
删除key。
Boolean expire(K key, long timeout, TimeUnit unit)
设置key的有效时间(在经过timeout后失效)。
Boolean expireAt(K key, Date date)
设置key的有效时间(在date这个时间点后失效)。
Long getExpire(K key)
获取key的有效时间(秒)。
Long getExpire(K key, TimeUnit timeUnit)
获取key的有效时间,并转换为以timeUnit为时间单位。
Boolean hasKey(K key)
判断key是否存在。
Boolean persist(K key)
删除key的失效时间。
K randomKey()
Return a random key from the keyspace.
void rename(K oldKey, K newKey)
将oldKey重命名为newKey。
Boolean renameIfAbsent(K oldKey, K newKey)
仅当newKey不存在时,将oldKey重命名为newKey。
DataType type(K key)
返回key的类型。
value类型操作
获得并使用ValueOperation<K, V>实例提供的各方法。
如:
1
redisTemplate.opsForValue().set(key, value);
方法列表:
Integer
append(K key, String value)
拼接value到key的值上。
String
get(K key, long start, long end)
获取key的值在begin和end间的子字符串。
V
get(Object key)
获取key的值。
V
getAndSet(K key, V value)
设置key的值为value,并返回key的旧值。
Boolean
getBit(K key,