文章目录
- 一、注入
- 二、API
-
- 1、redisTemplate
-
- 1、局部序列化
- 2、检查key是否存在
- 3、计算存在key数量
- 4、根据key删除缓存
- 5、设置过期时间
- 6、根据key获取过期时间
- 7、key重命名
- 8、查找匹配的key值
- 2、ValueOperations 字符串
-
- 1、 获取
- 2、 set
- 3、 get
- 4、字符串长度
- 5、末尾追加
- 6、递增
- 3、hash 散列
-
- 1、 获取
- 2、新增
- 3、获取
- 4、获取该key的所有hashKey
- 5、获取该key的键值对记录数
- 8、指定key的指定hashkey是否存在
- 9、删除
- 10、递增
- 4、List 列表
-
- 1、 获取
- 2、长度
- 3、获取指定下标的元素
- 4、添加元素
- 5、获取指定区间的元素
- 6、删除并返回元素
- 7、删除元素
- 5、Set 无序集合
-
- 1、 获取
- 2、集合大小
- 3、元素是否存在
- 4、添加元素
- 5、移除元素
- 6、获取所有元素
- 7、随机获取集合中元素
- 8、将一个集合中的元素移动至另一个集合
- 9、移除并返回几个随机的元素
- 10、交集
- 11、并集
- 12、差集
- 13、遍历集合
- 6、Zset 有序集合
-
- 1、 获取
- 2、集合大小
- 3、添加元素
- 4、移除元素
- 5、增加元素的score值
- 6、查询一个元素的score
- 7、查询一个元素在集合中的排名
- 8、统计分数区间数量
- 9、获取指定区间的元素
- 10、交集
- 11、并集
- 12、差集
- 13、遍历集合
一、注入
- 由于StringRedisTemplate继承自RedisTemplate,所以他们的方法基本一样
@Autowired
private StringRedisTemplate stringRedisTemplate;
@Autowired
private RedisTemplate<String,List<Double>> redisTemplate;
二、API
1、redisTemplate
1、局部序列化
RedisSerializer keySerializer=redisTemplate.getKeySerializer();
RedisSerializer valueSerializer=redisTemplate.getValueSerializer();
RedisSerializer<?> redisTemplate.getHashKeySerializer();
RedisSerializer<?> redisTemplate.getHashValueSerializer();
void redisTemplate.setKeySerializer(RedisSerializer<?> serializer);
void redisTemplate.setValueSerializer(RedisSerializer<?> serializer);
void setHashKeySerializer(RedisSerializer<?> hashKeySerializer);
void setHashValueSerializer(RedisSerializer<?> hashValueSerializer);
2、检查key是否存在
Boolean redisTemplate.hasKey("rafa");
3、计算存在key数量
Long countExistingKeys(Collection<K> keys);
4、根据key删除缓存
Boolean redisTemplate.delete("test");
Long redisTemplate.delete(Collection c);
5、设置过期时间
Boolean expireAt(K key, Date date);
Boolean expire(K key, long timeout, TimeUnit unit);
6、根据key获取过期时间
Long getExpire(K key);
Long getExpire(String key,TimeUnit.MINUTES);
7、key重命名
void redisTemplate.rename(oldKey, newKey)
Boolean redisTemplate.renameIfAbsent(oldKey, newKey)
8、查找匹配的key值
Set<String> redisTemplate.keys("ss:*");
2、ValueOperations 字符串
1、 获取
ValueOperations<K, V> redisTemplate.opsForValue();
2、 set
void set(K key, V value);
void set(K key, V value, Duration timeout);
void set(K key, V value, final long timeout, final TimeUnit unit)
void set(K key, V value, long offset)
V getAndSet(K key, V newValue)
Boolean setIfAbsent(K key, V value)
Boolean setIfAbsent(K key, V value, Duration timeout)
Boolean setIfAbsent(K key, V value, long timeout, TimeUnit unit)
3、 get
V get(Object key)
String get(K key, long start, long end);
List<V> multiGet(Collection<K> keys);
4、字符串长度
Long size(K key);
5、末尾追加
//返回追加后字符串长度
Integer append(K key, String value);
6、递增
- 将key储存的值加上增量,如果key不存在,那 key的值会先被初始化为 0 ,然后再执行相加,如果值包含错误的类型的值不能表示为数字,返回一个错误
- 若key设置了过期时间,会保持时间正常走,并不会因为增/减而将过期时间重置
Long increment(String key);
Long increment(String key, long delta);
Double increment(String key, double delta);
Long decrement(K key);
Long decrement(K key, long delta);
3、hash 散列
1、 获取
HashOperations<K,HK,HV> redisTemplate.opsForHash();
2、新增
void put(key, hashKey, value);
Boolean putIfAbsent(key, hashKey, value);
void putAll(key, Map map);
3、获取
Object get(key, hashKey);
Map<Object,Object> entries("map")
List<Object> values("map");
4、获取该key的所有hashKey
Set<Object> keys("map");
5、获取该key的键值对记录数
Long size("map");
8、指定key的指定hashkey是否存在
Boolean hasKey(key, hashKey);
9、删除
Long delete(key, Object... hashKeys);
10、递增
Long increment(String key,String hashKey, long delta);
Double increment(String key,String hashKey, double delta);
4、List 列表
1、 获取
ListOperations<String,T> opsForList=redisTemplate.opsForList();
2、长度
Long size(key)
3、获取指定下标的元素
V index(key, index)
4、添加元素
Long leftPush(key, value)
Long leftPushAll(K key, V... values)
Long leftPushAll(K key, Collection<V> values)
Long leftPushIfPresent(K key, V value)
void set(K key, final long index, V value)
5、获取指定区间的元素
List<T> range(key,long start, long end)
6、删除并返回元素
V leftPop(key)
V leftPop(K key, long timeout, TimeUnit unit)
V rightPopAndLeftPush(K sourceKey, K destinationKey)
V rightPopAndLeftPush(K sourceKey, K destinationKey, long timeout,TimeUnit unit)
7、删除元素
Long remove(K key, long count, Object value)
void trim(K key, final long start, final long end)
5、Set 无序集合
1、 获取
SetOperations<K,V> redisTemplate.opsForSet();
2、集合大小
Long size(key)
3、元素是否存在
Boolean isMember(key, value)
4、添加元素
Long add(K key, V... values)
5、移除元素
Long remove(K key, Object... values)
6、获取所有元素
Set<T> members(key)
7、随机获取集合中元素
V randomMember(String key)
List<V> randomMembers(String key, long count)
Set<V> distinctRandomMembers(K key, long count)
8、将一个集合中的元素移动至另一个集合
Boolean move(String key, V value, String destKey)
9、移除并返回几个随机的元素
V pop(K key)
List<V> pop(K key, long count)
10、交集
Set<V> intersect(String key, String otherKey)
Set<V> intersect(K key, Collection<K> otherKeys)
Long intersectAndStore(String key, String otherKey, String destKey)
Long intersectAndStore(K key, Collection<K> otherKeys, K destKey)
11、并集
Set<V> union(String key, String otherKey)
Set<V> union(K key, Collection<K> otherKeys)
Long unionAndStore(String key, String otherKey, String destKey)
Long unionAndStore(K key, Collection<K> otherKeys, K destKey)
12、差集
Set<V> difference(String key, String otherKey)
Set<V> difference(K key, Collection<K> otherKeys)
Long differenceAndStore(String key, String otherKey, String destKey)
Long differenceAndStore(K key, Collection<K> otherKeys, K destKey)
13、遍历集合
Cursor<V> scan(K key,ScanOptions options)
Cursor<String> cursor=setOperations.scan(cacheKey,ScanOptions.NONE);
while(cursor.hasNext()){
Object object = cursor.next();
}
6、Zset 有序集合
1、 获取
ZSetOperations<K, V> redisTemplate.opsForZSet();
2、集合大小
Long zCard(K key)
Long size(K key)
3、添加元素
Boolean add(K key, V value, double score)
Long add(K key, Set<TypedTuple<V>> tuples)
4、移除元素
Long remove(K key, Object... values)
Long removeRange(K key, long start, long end)
Long removeRangeByScore(K key, double min, double max)
5、增加元素的score值
Double incrementScore(String key, V value, double delta)
6、查询一个元素的score
Double score(K key, Object o)
7、查询一个元素在集合中的排名
Long rank(String key, Object o)
Long reverseRank(Stirng key, Object o)
8、统计分数区间数量
Long count(K key, double min, double max)
9、获取指定区间的元素
Set<V> range(K key, long start, long end)
Set<V> reverseRange(K key, long start, long end)
Set<TypedTuple<V>> rangeWithScores(K key, long start, long end)
Set<TypedTuple<V>> reverseRangeWithScores(K key, long start, long end)
Set<V> reverseRangeByScore(K key, double min, double max)
Set<V> rangeByScore(K key, double min, double max)
Set<V> rangeByScore(K key, double min, double max, long offset, long count)
Set<V> reverseRangeByScore(K key,double min,double max,long offset,
long count)
Set<TypedTuple<V>> rangeByScoreWithScores(K key, double min, double max)
Set<TypedTuple<V>> reverseRangeByScoreWithScores(K key,double min,
double max)
Set<TypedTuple<V>> rangeByScoreWithScores(K key, double min, double max,
long offset, long count)
Set<TypedTuple<V>> reverseRangeByScoreWithScores(K key, double min,
double max, long offset, long count)
Set<V> rangeByLex(K key, Range range)
Set<V> rangeByLex(K key, Range range, Limit limit)
10、交集
Long intersectAndStore(K key, K otherKey, K destKey)
Long intersectAndStore(K key, Collection<K> otherKeys, K destKey)
11、并集
Long unionAndStore(String key, String otherKey, String destKey)
Long unionAndStore(K key, Collection<K> otherKeys, K destKey)
12、差集
Long differenceAndStore(String key, String otherKey, String destKey)
Long differenceAndStore(K key, Collection<K> otherKeys, K destKey)
13、遍历集合
Cursor<String> cursor=setOperations.scan(cacheKey,ScanOptions.NONE);
while(cursor.hasNext()){
Object object = cursor.next();
}