RedisTemplate是一个spring框架的模板,它提供了基于redis的常用操作,并且支持对象存储,可以让我们更方便的操作redis数据库。它提供了一系列的API,可以支持我们实现redis的各种操作,下面介绍几个常用的操作。
1、String操作
String是redis中最常用的数据类型,RedisTemplate提供了多种API来支持对String类型的操作,比如:
- set:设置key-value,如果key已存在,则覆盖原有的value
- get:获取key对应的value
- setIfAbsent:设置key-value,如果key已存在,则不会覆盖原有的value
- multiSet:设置多个key-value,如果key已存在,则覆盖原有的value
- multiGet:获取多个key对应的value
- increment:对key对应的value做自增操作
- append:追加字符串到key对应的value后面
// 设置key-value redisTemplate.opsForValue().set("key1", "value1"); // 获取key对应的value String value = redisTemplate.opsForValue().get("key1"); // 设置多个key-value Mapmap = new HashMap<>(); map.put("key2", "value2"); map.put("key3", "value3"); redisTemplate.opsForValue().multiSet(map); // 获取多个key对应的value List values = redisTemplate.opsForValue().multiGet(Arrays.asList("key1", "key2", "key3")); // 对key对应的value做自增操作 redisTemplate.opsForValue().increment("key4", 1); // 追加字符串到key对应的value后面 redisTemplate.opsForValue().append("key5", "appendValue");
2、Hash操作
Hash是redis中常用的数据类型,RedisTemplate提供了多种API来支持对Hash类型的操作,比如:
- put:设置hash中field-value,如果field已存在,则覆盖原有的value
- get:获取hash中field对应的value
- multiPut:设置多个field-value,如果field已存在,则覆盖原有的value
- multiGet:获取多个field对应的value
- entries:获取hash中所有field-value
- increment:对hash中field对应的value做自增操作
// 设置field-value redisTemplate.opsForHash().put("hashKey", "field1", "value1"); // 获取field对应的value Object value = redisTemplate.opsForHash().get("hashKey", "field1"); // 设置多个field-value Mapmap = new HashMap<>(); map.put("field2", "value2"); map.put("field3", "value3"); redisTemplate.opsForHash().putAll("hashKey", map); // 获取多个field对应的value List
3、List操作
List是redis中常用的数据类型,RedisTemplate提供了多种API来支持对List类型的操作,比如:
- leftPush:从list头部添加元素
- rightPush:从list尾部添加元素
- leftPop:从list头部弹出元素
- rightPop:从list尾部弹出元素
- range:获取list中指定范围的元素
- size:获取list的长度
- remove:删除list中指定的元素
// 从list头部添加元素 redisTemplate.opsForList().leftPush("listKey", "value1"); // 从list尾部添加元素 redisTemplate.opsForList().rightPush("listKey", "value2"); // 从list头部弹出元素 Object value1 = redisTemplate.opsForList().leftPop("listKey"); // 从list尾部弹出元素 Object value2 = redisTemplate.opsForList().rightPop("listKey"); // 获取list中指定范围的元素 Listvalues = red