Spring中使用RedisTemplate操作Redis(spring(6)

使用:System.out.println(template.opsForHash().hasKey("redisHash","age"));
      System.out.println(template.opsForHash().hasKey("redisHash","ttt"));
结果:true
false

•HV get(H key, Object hashKey);
从键中的哈希获取给定hashKey的值

使用:System.out.println(template.opsForHash().get("redisHash","age"));
结果:26

•List<HV> multiGet(H key, Collection<HK> hashKeys);
从哈希中获取给定hashKey的值

使用:List<Object> kes = new ArrayList<Object>();
      kes.add("name");
      kes.add("age");
      System.out.println(template.opsForHash().multiGet("redisHash",kes));
结果:[jack, 28.1]

•Long increment(H key, HK hashKey, long delta);
通过给定的delta增加散列hashKey的值(整型)

使用:System.out.println(template.opsForHash().get("redisHash","age"));
  System.out.println(template.opsForHash().increment("redisHash","age",1));
结果:26
27

•Double increment(H key, HK hashKey, double delta);
通过给定的delta增加散列hashKey的值(浮点数)

使用:System.out.println(template.opsForHash().get("redisHash","age"));
  System.out.println(template.opsForHash().increment("redisHash","age",1.1));
结果:27
28.1

•Set<HK> keys(H key);
获取key所对应的散列表的key

使用:System.out.println(template.opsForHash().keys("redisHash1"));
//redisHash1所对应的散列表为{class=1, name=jack, age=27}
结果:[name, class, age]

•Long size(H key);
获取key所对应的散列表的大小个数

使用:System.out.println(template.opsForHash().size("redisHash1"));
//redisHash1所对应的散列表为{class=1, name=jack, age=27}
结果:3

•void putAll(H key, Map<? extends HK, ? extends HV> m);
使用m中提供的多个散列字段设置到key对应的散列表中

使用:Map<String,Object> testMap = new HashMap();
      testMap.put("name","jack");
      testMap.put("age",27);
      testMap.put("class","1");
      template.opsForHash().putAll("redisHash1",testMap);
      System.out.println(template.opsForHash().entries("redisHash1"));
结果:{class=1, name=jack, age=27}

•void put(H key, HK hashKey, HV value);
设置散列hashKey的值

使用:template.opsForHash().put("redisHash","name","tom");
      template.opsForHash().put("redisHash","age",26);
      template.opsForHash().put("redisHash","class","6");
System.out.println(template.opsForHash().entries("redisHash"));
结果:{age=26,, name=tom}

•Boolean putIfAbsent(H key, HK hashKey, HV value);
仅当hashKey不存在时才设置散列hashKey的值。

使用:System.out.println(template.opsForHash().putIfAbsent("redisHash","age",30));
System.out.println(template.opsForHash().putIfAbsent("redisHash","kkk","kkk"));
结果:false
true

•List<HV> values(H key);
获取整个哈希存储的值根据密钥

使用:System.out.println(template.opsForHash().values("redisHash"));
结果:[tom, 26, 6]

•Map<HK, HV> entries(H key);
获取整个哈希存储根据密钥

使用:System.out.println(template.opsForHash().entries("redisHash"));
结果:{age=26,, name=tom}

•Cursor<Map.Entry<HK, HV>> scan(H key, ScanOptions options);
使用Cursor在key的hash中迭代,相当于迭代器。

使用:Cursor<Map.Entry<Object, Object>> curosr = template.opsForHash().scan("redisHash", ScanOptions.ScanOptions.NONE);
      while(curosr.hasNext()){
          Map.Entry<Object, Object> entry = curosr.next();
          System.out.println(entry.getKey()+":"+entry.getValue());
      }
结果:age:28.1
class:6
kkk:kkk

Redis的Set数据结构

Redis的Set是string类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。
Redis 中 集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。
public interface SetOperations<K,V>
SetOperations提供了对无序集合的一系列操作:

•Long add(K key, V... values);
无序集合中添加元素,返回添加个数
也可以直接在add里面添加多个值 如:template.opsForSet().add("setTest","aaa","bbb")

使用:String[] strarrays = new String[]{"strarr1","sgtarr2"};
      System.out.println(template.opsForSet().add("setTest", strarrays));
结果:2

•Long remove(K key, Object... values);
移除集合中一个或多个成员

使用:String[] strarrays = new String[]{"strarr1","sgtarr2"};
System.out.println(template.opsForSet().remove("setTest",strarrays));
结果:2

•V pop(K key);
移除并返回集合中的一个随机元素

使用:System.out.println(template.opsForSet().pop("setTest"));
System.out.println(template.opsForSet().members("setTest"));
结果:bbb
[aaa, ccc]

•Boolean move(K key, V value, K destKey);
将 member 元素从 source 集合移动到 destination 集合

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/8f96c330d6318f32beb9e4557005b934.html