菜鸡的redis之路(一) String

Redis五大类型:字符串(String)、哈希/散列/字典(Hash)、列表(List)、集合(Set)、有序集合(sorted set)五种

redisTemplate.opsForValue();//操作字符串
redisTemplate.opsForHash();//操作hash
redisTemplate.opsForList();//操作list
redisTemplate.opsForSet();//操作set
redisTemplate.opsForZSet();//操作有序set

opsForValue()-操作字符串

1.set(K key,V value),新增一个字符串类型的键值对,es:redisTemplate.opsForValue().set(“key”,”“value)

2.get(Object key),获取key键对应的value,es:redisTemplate.opsForValue().get(“key”)

3.append(K key, String value),在原有key对应值的末尾新增value,es:redisTemplate.opsForValue().append(“key”,”append”)

4.get(K key, long start, long end),截取key对应的value字符串,包含结束下标,
es:redisTemplate.opsForValue().get(“key”,0,3)

5.getAndSet(K key, V value),获取原来的值并重新赋值,es:redisTemplate.opsForValue().getAndSet(“key”,“other”)

6.setBit(K key, long offset, boolean value),key键对应的值value对应的ascii码,在offset的位置(从左向右数)变为value

es: template.opsForValue().set("bitTest","a");
    // 'a' 的ASCII码是 97。转换为二进制是:01100001
    // 'b' 的ASCII码是 98  转换为二进制是:01100010
    // 'c' 的ASCII码是 99  转换为二进制是:01100011
    //因为二进制只有0和1,在setbit中true为1,false为0,因此我要变为'b'的话第六位设置为1,第七位设置为0
    template.opsForValue().setBit("bitTest",6, true);
    template.opsForValue().setBit("bitTest",7, false);
    System.out.println(template.opsForValue().get("bitTest"));

7.getBit(K key, long offset),判断指定的位置ASCII码的bit位是否为1,es:redisTemplate.opsForValue().getBit(“stringValue”,1)

8.size(K key),获取指定字符串的长度,es:redisTemplate.opsForValue().size(“stringValue”)

9.increment(K key, double delta),以增量的方式将double值存储在变量中,如果原来的key对应的值不是数值,会报错

10.increment(K key, long delta) 同上

11.setIfAbsent(K key, V value),不存在则新增(返回true),存在则不改变原来的值(返回false),es:redisTemplate.opsForValue().setIfAbsent(“key”,”value”)

12.set(K key, V value, long timeout, TimeUnit unit),设置键值对的过期时间es:redisTemplate.opsForValue().set(“name”,”tom”,10, TimeUnit.SECONDS),10秒之内get(“name”)有值,10秒之后为null

13.set(K key, V value, long offset),覆盖从指定位置开始的值

使用:template.opsForValue().set("key","hello world");
    template.opsForValue().set("key","redis", 6);
    System.out.println("***************"+template.opsForValue().get("key"));
结果:hello redis

14.

    multiSet(Map<? extends K,? extends V> map),设置map集合到redis
    es:
        Map valueMap = new HashMap();  
        valueMap.put("valueMap1","map1");  
        valueMap.put("valueMap2","map2");  
        valueMap.put("valueMap3","map3");  
        redisTemplate.opsForValue().multiSet(valueMap);  

15.

        multiGet(Collection<K> keys),根据集合取出对应的value值
        es:
            //根据List集合取出对应的value值  
            List paraList = new ArrayList();  
            paraList.add("valueMap1");  
            paraList.add("valueMap2");  
            paraList.add("valueMap3");  
            List<String> valueList = redisTemplate.opsForValue().multiGet(paraList);  

16.

multiSetIfAbsent(Map<? extends K,? extends V> map),如果对应的map集合名称不存在,则添加(返回true),如果存在则不做修改(返回false)

17.

Map valueMap = new HashMap();  
valueMap.put("valueMap1","map1");  
valueMap.put("valueMap2","map2");  
valueMap.put("valueMap3","map3");  
redisTemplate.opsForValue().multiSetIfAbsent(valueMap); 

技术交流群:526601468(2群)、313145288(1群-已满)

参考:

1.https://blog.csdn.net/weixin_37490221/article/details/78134521
2.https://www.jianshu.com/p/7bf5dc61ca06/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值