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/