SpringBoot集成多个Redis实例

这篇博客介绍了如何在SpringBoot应用中集成并配置多个Redis实例。内容包括依赖引入、单个Redis实例的自动配置,以及如何进行原子递增计数、查找key和使用pipeline进行大量串行操作以提高效率。同时,文中提到了使用pipeline时需要注意的服务端内存占用和命令数量控制。
摘要由CSDN通过智能技术生成

访问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, 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值