1、jar包引入
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
2、application.yml配置
spring:
redis:
database: "" #数据库
host: "" #ip地址
port: "" #端口号
lettuce:
pool:
# 连接池最大连接数(使用负值表示没有限制) 默认8
max-active: "}"
# 连接池最大阻塞等待时间(使用负值表示没有限制) 默认 -1
max-wait: "}"
# 连接池中的最大空闲连接 默认8
max-idle: ""
# 连接池中的最小空闲连接 默认0
min-idle: ""
3、config配置
@ConditionalOnProperty(prefix = "", name = "", havingValue = "true", matchIfMissing = true)
@Configuration
public class RedisConfig {
@Bean
public RedisTemplate<String, Object> redisTemplate(LettuceConnectionFactory connectionFactory) {
RedisTemplate<String, Object> template = new RedisTemplate<>();
// 配置连接工厂
template.setConnectionFactory(connectionFactory);
// 使用FastJsonRedisSerializer来序列化和反序列化redis的value值(默认使用JDK的序列化方式)
template.setValueSerializer(new FastJsonRedisSerializer<>(Object.class));
template.setKeySerializer(new StringRedisSerializer());
// 设置hash key 和value序列化模式
template.setHashKeySerializer(new StringRedisSerializer());
template.setHashValueSerializer(new FastJsonRedisSerializer<>(Object.class));
template.afterPropertiesSet();
return template;
}
}
监听器配置:
@Configuration
public class RedisListenerConfig {
@Bean
RedisMessageListenerContainer container(RedisConnectionFactory connectionFactory) {
RedisMessageListenerContainer container = new RedisMessageListenerContainer();
container.setConnectionFactory(connectionFactory);
return container;
}
}
4、redisTemplate.opsForValue(),操作字符串
set(K key, V value) | 新增一个字符串类型的值,key是键,value是值。 |
get(Object key) | 获取key键对应的值 |
append(K key, String value) | 在原有的值基础上新增字符串到末尾 |
get(K key, long start, long end) | 截取key键对应值得字符串,从开始下标位置开始到结束下标的位置(包含结束下标)的字符串 |
getAndSet(K key, V value) | 获取原来key键对应的值并重新赋新值 |
setBit(K key, long offset, boolean value) | key键对应的值value对应的ascii码,在offset的位置(从左向右数)变为value |
getBit(K key, long offset) | 判断指定的位置ASCII码的bit位是否为1 |
size(K key) | 获取指定字符串的长度 |
increment(K key, double delta) | 以增量的方式将double值存储在变量中 |
increment(K key, long delta) | 以增量的方式将long值存储在变量中 |
setIfAbsent(K key, V value) | 如果键不存在则新增,存在则不改变已经有的值 |
set(K key, V value, long timeout, TimeUnit unit) | 设置变量值的过期时间 |
set(K key, V value, long offset) | 覆盖从指定位置开始的值 |
multiSet(Map<? extends K,? extends V> map) | 设置map集合到redis |
multiGet(Collection<K> keys) | 根据集合取出对应的value值 |
multiSetIfAbsent(Map<? extends K,? extends V> map) |
|
5、redisTemplate.opsForHash(),操作Hash对象
新增hashMap值 | |
获取指定变量中的hashMap值 | |
获取变量中的键值对 | |
获取变量中的指定map键是否有值,如果存在该map键则获取值,没有则返回null | |
判断变量中是否有指定的map键 | |
获取变量中的键 | |
获取变量的长度 | |
使变量中的键以double值的大小进行自增长 | |
|