使用SpringDataRedis在Java中操作Redis

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); 删除集合中的元素

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值