RedisTemplate指令

一、String类型

1.set(K key, V value):新增一个字符串类型的值,key是键,value是值。
redisTemplate.opsForValue().set(CommonConstant.TEST_STRING+"关羽","水淹七军");

2.setIfAbsent(K key, V value):如果键不存在则新增,存在则不改变已经有的值。
redisTemplate.opsForValue().setIfAbsent(CommonConstant.TEST_STRING + "关羽","桃园结义");

3.set(K key, V value, long timeout, TimeUnit unit):设置变量值的过期时间。
redisTemplate.opsForValue().set(CommonConstant.TEST_STRING + "关羽", "千里走单骑", 1, TimeUnit.MINUTES);

4.get(Object key):获取key键对应的值
String o = (String) redisTemplate.opsForValue().get(CommonConstant.TEST_STRING + "关羽");

5.getAndSet(K key, V value): 获取原来key键对应的值并重新赋新值。
String s1 = (String)redisTemplate.opsForValue().getAndSet(CommonConstant.TEST_STRING + "关羽", "败走麦城");

6.increment(K key, long delta):以增量的方式将long值存储在变量中。
redisTemplate.opsForValue().increment(CommonConstant.TEST_STRING + "关羽",3);

7.multiSet(Map<? extends K,? extends V> map):设置map集合到redis。
Map<String,String> map = new HashMap<>(2);
map.put("1","1");
map.put("2","2");
redisTemplate.opsForValue().multiSet(map);

8.multiSetIfAbsent(Map<? extends K,? extends V> map):如果对应的map集合名称不存在,则添加,如果存在则不做修改。如果map中的某个key存在,则整个map都存入失败。
redisTemplate.opsForValue().multiSetIfAbsent(map);

9.multiGet(Collection<K> keys):根据集合取出对应的value值。
List<String> list = new ArrayList<>();
list.add("1");
list.add("2");
List multiGet = redisTemplate.opsForValue().multiGet(list);

二、Hash类型

**hash 特别适合用于存储对象。**
1.put(H key, HK hashKey, HV value):新增一个键为key字段为hashKey值为value的记录。
StudentEntity studentEntity = StudentEntity.builder().studentName("织席贩履之辈").studentAge(18).id(1l).build();
StudentEntity studentEntity2 = StudentEntity.builder().studentName("方天画戟专捅义父").studentAge(28).id(2l).build();
redisTemplate.opsForHash().put(CommonConstant.TEST_HASH, studentEntity.getId(), studentEntity);
redisTemplate.opsForHash().put(CommonConstant.TEST_HASH, studentEntity2.getId(), studentEntity2);
        
2.putIfAbsent(H key, HK hashKey, HV value)
如果键存在,在键值可以添加不存在的的键值对,如果键不存在,则新增一个键,同时将键值对添加到该键。
 redisTemplate.opsForHash().putIfAbsent(CommonConstant.TEST_HASH, studentEntity.getId(), "89485");
 
 3.get(H key, Object hashKey):获取键中的指定键是否有值,如果有则获取值,没有则返回null。
StudentEntity o = (StudentEntity) redisTemplate.opsForHash().get(CommonConstant.TEST_HASH, 1);

4.values(H key):获取指定键的values值。
List values = redisTemplate.opsForHash().values(CommonConstant.TEST_HASH);

5.keys(H key):获取键中所有的keys。
Set keys = redisTemplate.opsForHash().keys(CommonConstant.TEST_HASH);

6.hasKey(H key, Object hashKey):判断键中是否有指定key。
Boolean b = redisTemplate.opsForHash().hasKey(CommonConstant.TEST_HASH, 1);

7.entries(H key):获取键中的键值对。
  Map entries = redisTemplate.opsForHash().entries(CommonConstant.TEST_HASH);
  
8.increment(H key, HK hashKey, long l):使键中key为hashKey的value以long值的大小进行自增长。
redisTemplate.opsForHash().increment(CommonConstant.TEST_HASH, 3, 1);

9.putAll(H key, Map<? extends HK,? extends HV> m):以map集合的形式添加键值对。
Map<Long, StudentEntity> map = new HashMap<>();
StudentEntity entity = StudentEntity.builder().id(5l).studentAge(148).studentName("庄子").build();
StudentEntity entity2 = StudentEntity.builder().id(4l).studentAge(288).studentName("老子").build();
map.put(entity.getId(), entity);
map.put(entity2.getId(), entity2);
redisTemplate.opsForHash().putAll(CommonConstant.TEST_HASH, map);

10.multiGet(H key, Collection<HK> hashKeys):以集合的方式获取键中的values。
List list = redisTemplate.opsForHash().multiGet(CommonConstant.TEST_HASH, Arrays.asList(1, 2, 3, 4, 5));

11.delete(H key, Object... hashKeys):删除键中的键值对,可以传入多个参数,删除多个键值对。
 redisTemplate.opsForHash().delete(CommonConstant.TEST_HASH, 1, 2);

三、List类型

1.leftPush(K key, V value):在key左边添加元素值
redisTemplate.opsForList().leftPush(CommonConstant.TEST_LIST, "插标卖首");
2.leftPushIfPresent(K key, V value):如果存在集合则添加元素
redisTemplate.opsForList().leftPushIfPresent(CommonConstant.TEST_LIST, "叉出去");
3.leftPushAll(K key, V... values):向左边批量添加参数元素
redisTemplate.opsForList().leftPushAll(CommonConstant.TEST_LIST, "无名鼠辈", "虎女岂能嫁于犬子");
4.leftPushAll(K key, Collection<V> values):以集合的方式向左边批量添加元素
redisTemplate.opsForList().leftPushAll(CommonConstant.TEST_LIST, Arrays.asList("七进七出救阿斗", "火烧赤壁"));
5.leftPush(K key, V pivot, V value)
// 草船借箭放到无名鼠辈之前,前提是无名鼠辈已存在
redisTemplate.opsForList().leftPush(CommonConstant.TEST_LIST, "无名鼠辈", "草船借箭");
6.rightPopAndLeftPush(K sourceKey, K destinationKey):移除sourceKey集合中右边的元素,同时从左边插入destinationKey集合
// 从TEST_LIST右边移除从TEST_LIST2左边插入
redisTemplate.opsForList().rightPopAndLeftPush(CommonConstant.TEST_LIST, "TEST_LIST2");
7.rightPopAndLeftPush(K sourceKey, K destinationKey, long timeout, TimeUnit unit)
在等待的时间里,从右边移除sourceKey集合中的元素同时在destinationKey左边添加元素,如果超过等待的时间sourceKey仍没有元素则退出。
redisTemplate.opsForList().rightPopAndLeftPush("TEST_LIST2", CommonConstant.TEST_LIST, 2, TimeUnit.SECONDS);
8.leftPop(K key):移除集合中的左边第一个元素。
Object o = redisTemplate.opsForList().leftPop(CommonConstant.TEST_LIST);
logger.info(JSON.toJSONString(o));
9.leftPop(K key, long timeout, TimeUnit unit)
移除集合中左边的元素在等待的时间里,如果超过等待的时间仍没有元素则退出。
Object o1 = redisTemplate.opsForList().leftPop("TEST_LIST2", 2, TimeUnit.SECONDS);
logger.info(JSON.toJSONString(o1));
10.range(K key, long start, long end):获取指定区间的值(0到-1代表全部)
List range = redisTemplate.opsForList().range(CommonConstant.TEST_LIST, 0, -1);
range.forEach(r -> logger.info(JSON.toJSONString(r)));
11.size(K key):获取集合长度
Long size = redisTemplate.opsForList().size(CommonConstant.TEST_LIST);
logger.info(JSON.toJSONString(size));
12.index(K key, long index):获取集合指定位置的值
String index = stringRedisTemplate.opsForList().index(CommonConstant.TEST_LIST, 1);
13.set(K key, long index, V value)
// 在集合的指定位置插入元素,如果指定位置已有元素,则覆盖,超过集合size-1则会报错。
redisTemplate.opsForList().set(CommonConstant.TEST_LIST, size - 1, "七步成诗");
14.trim(K key, long start, long end):截取集合,保留长度内的数据
redisTemplate.opsForList().trim(CommonConstant.TEST_LIST, 0, size - 2);

四、sET

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值