Jedis
只做了解即可
Spring Data Jedis
提供了一个高度封装的类:RedisTemplate,针对jedis客户端中大量api进行归类封装,将同一类型操作封装为operation接口,具体分类如下:
ValueOperations:简单K-V操作
SetOperations:set类型数据操作
ZSetOperations:zset类型数据操作
HashOperations:针对Hash类型的数据操作
ListOperations:针对list类型的数据操作
配置序列化
@Configuration
public class RedisConfig {
@Bean
public RedisTemplate<String, String> redisTemplate(RedisConnectionFactory factory) {
RedisTemplate<String, String> template = new RedisTemplate<>();
template.setConnectionFactory(factory);
// 设置 String 序列化器(保证 key 和 value 存储为普通字符串)
StringRedisSerializer stringRedisSerializer = new StringRedisSerializer();
template.setKeySerializer(stringRedisSerializer);
template.setValueSerializer(stringRedisSerializer);
template.setHashKeySerializer(stringRedisSerializer);
template.setHashValueSerializer(stringRedisSerializer);
template.afterPropertiesSet();
return template;
}
}
RedisTemplate类的使用
注入RedisTemplate对象
@Autowired
private RedisTemplate redisTemplate;
获得ValueOperations对象
ValueOprations valueOprations = redisTemplate.opsForValue();
获得HashOperations对象
HashOperations hashOperations = redisTemplate.opsForHash();
获得ListOperations对象
ListOperations listOperations = redisTemplate.opsForList();
获得SetOperations对象
SetOperations setOperations = redisTemplate.opsForSet();
获得ZSetOperations对象
ZSetOperations zSetOprations = redisTemplate.opsForZset();
获取Redis中指定格式的key (pattern 为"*"时返回所有key)
Set keys = redisTemplate.keys(String pattern);
判断某个key是否存在
Boolean flag = redisTemplate.hasKey(Object key);
删除指定key
redisTemplate.delete(Object key);
获取指定key对应的value的数据类型
DataType dataType = redisTemplate.type(Object key);
System.out.println(dataType);
ValueOperations类的使用
valueOprations.set(Object key,Object value);
添加/修改数据
String value = (String) valueOperations.get(Object key);
获取数据(返回值为Object类型,可强转)
valueOperations.set(Object key,Object value,Long time,TimeUnit timeunit);
添加/修改数据,并设置存活时间
valueOprations.setIfAbsent(Object key,Object value);
当key不存在时进行数据添加
HashOperations类的使用
hashOperations.put(Object key,Object hashkey,Object value);
添加/修改数据
hashOperations.get(Object key,Object hashkey);
获取数据
Set keys = hashOperations.keys(Object key);
获取所有key值
List values = hashOperations.values(Object key);
获取所有value值
ListOperations类的使用
!!!左右两端均可增删!!!
listOperations.leftPush(Object key,Object value);
添加一个元素
listOperations.leftPushAll(Object key,Object value1...valuex);
添加多个元素
List<String> list = listOperations.range(Object key,Long start Long end);
获取区间数据,区间(0,-1)取出所有数据
Object element = listOperations.rightPop(Object key);
出队列
listOperations.size(Object key);
获取列表长度
SetOperations类的使用
setOperations.add(Object key,Object value1...Object valuex);
向集合添加元素
Set<String> members = setOperations.members(Object key);
获取集合全部元素
setOperations.remove(Object key,Object value1...Object valuex);
删除指定集合中的元素
ZSetOperations类的使用
zSetOperations.add(Object key,Object value,double score);
向集合添加元素
Set<String> zSet = zSetOperations.range(Object key,long start long end);
查找指定区间元素,区间(0,-1)查找所有元素
zSetOperations.incrementScore(Object key,Object value,double delta);
给指定集合中的指定元素增加分数
zSetOperations.remove(Object key,Object value1...Object valuex);
删除集合中的元素