redis 常用方法汇总

721 阅读7分钟

Redis

RedisTemplate 直接使用

  • delete(String ...keys)
    删除单个或者多个key

  • expire(String key,long time)
    指定key的失效时间

  • getExpire(String key)
    根据key获取过期时间

  • hasKey(String key)
    判断key是否存在

opsForValue (String)

  • set(K key, V value)
    新增一个字符串类型的值,key是键,value是值。

  • set(K key, V value, long timeout, TimeUnit unit)
    设置变量值的过期时间。

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

  • get(Object key)
    获取key键对应的值。

  • getAndSet(K key, V value)
    获取原来key键对应的值并重新赋新值.

  • append(K key, String value)
    在原有的值基础上新增字符串到末尾

  • get(K key, long start, long end)
    截取key键对应值得字符串,从开始下标位置开始到结束下标的位置(包含结束下标)的字符串

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

  • getBit(K key, long offset)
    判断指定的位置ASCII码的bit位是否为1。

  • size(K key)
    获取指定字符串的长度

  • increment(K key, double delta)
    以增量的方式将double值存储在变量中。

  • increment(K key, long delta)
    以增量的方式将long值存储在变量中。

  • setIfAbsent(K key, V value)
    如果键不存在则新增,存在则不改变已经有的值。

  • multiSet(Map<? extends K,? extends V> map)
    设置map集合到redis,批量添加key

  • multiGet(Collection keys)
    根据集合取出对应的value值

opsForHash (Map)

  • put(H key, HK hashKey, HV value)
    新增HashMap值

  • putAll(H key, Map<? extends HK,? extends HV> m)
    以map集合的形式添加键值对。

  • values(H key)
    获取指定变量中的hashMap值。

  • get(H key, Object hashKey)
    获取变量中的指定map键是否有值,如果存在该map键则获取值,没有则返回null。

  • hasKey(H key, Object hashKey)
    判断变量中是否有指定的map键。

  • keys(H key)
    获取变量中的键。

  • entries(H key)
    获取变量中的键值对。

  • size(H key)
    获取变量的长度

  • delete(H key, Object... hashKeys)
    删除变量中的键值对,可以传入多个参数,删除多个键值对。

  • increment(H key, HK hashKey, double delta)
    使变量中的键以double值的大小进行自增长。

  • increment(H key, HK hashKey, long delta)
    使变量中的键以long值的大小进行自增长。

  • multiGet(H key, Collection hashKey)
    以集合的方式获取变量中的值。

  • putIfAbsent(H key, HK hashKey, HV value)
    如果变量值存在,在变量中可以添加不存在的的键值对,如果变量不存在,则新增一个变量,同时将键值对添加到该变量。

  • scan(H key, ScanOptions options)
    匹配获取键值对,ScanOptions.NONE为获取全部键对,ScanOptions.scanOptions().match("map1").build() 匹配获取键位map1的键值对,不能模糊匹配。

opsForSet (Set)

  • add(K key, V... values)
    向变量中批量添加值。

  • members(K key)
    获取变量中的值。

  • size(K key)
    获取变量中值的长度。

  • randomMember(K key)
    随机获取变量中的元素。

  • randomMembers(K key, long count)
    随机获取变量中指定个数的元素。

  • isMember(K key, Object o)
    检查给定的元素是否在变量中。

  • move(K key, V value, K destKey)
    转移变量的元素值到目的变量。

  • pop(K key)
    弹出变量中的元素。

  • remove(K key, Object... values)
    批量移除变量中的元素。

  • scan(K key, ScanOptions options)
    匹配获取键值对,ScanOptions.NONE为获取全部键值对;ScanOptions.scanOptions().match("C").build()匹配获取键位map1的键值对,不能模糊匹配。

  • difference(K key, Collection otherKeys)
    通过集合求差值

  • difference(K key, K otherKey)
    通过给定的key求2个set变量的差值。

  • differenceAndStore(K key, K otherKey, K destKey)
    将求出来的差值元素保存。

  • differenceAndStore(K key, Collection otherKeys, K destKey)
    将求出来的差值元素保存。

  • distinctRandomMembers(K key, long count)
    获取去重的随机元素。

  • intersect(K key, K otherKey)
    获取2个变量中的交集。

  • intersect(K key, Collection otherKeys)
    获取多个变量之间的交集。

  • intersectAndStore(K key, K otherKey, K destKey)
    获取2个变量交集后保存到最后一个参数上。

  • intersectAndStore(K key, Collection otherKeys, K destKey)
    获取多个变量的交集并保存到最后一个参数上。

  • union(K key, K otherKey)
    获取2个变量的合集。

  • union(K key, Collection otherKeys)
    获取多个变量的合集。

  • unionAndStore(K key, K otherKey, K destKey)
    获取2个变量合集后保存到最后一个参数上。

  • unionAndStore(K key, Collection otherKeys, K destKey)
    获取多个变量的合集并保存到最后一个参数上。

opsForList (List)

  • leftPush(K key, V value)
    在变量左边添加元素值。

  • index(K key, long index)
    获取集合指定位置的值。

  • range(K key, long start, long end)
    获取指定区间的值。

  • leftPush(K key, V pivot, V value)
    把最后一个参数值放到指定集合的第一个出现中间参数的前面,如果中间参数值存在的话。

  • leftPushAll(K key, V… values)
    向左边批量添加参数元素。

  • leftPushAll(K key, Collection values)
    以集合的方式向左边批量添加元素。

  • leftPushIfPresent(K key, V value)
    如果存在集合则添加元素。

  • rightPush(K key, V value)
    向集合最右边添加元素。

  • rightPush(K key, V pivot, V value)
    向集合中第一次出现第二个参数变量元素的右边添加第三个参数变量的元素值。

  • rightPushAll(K key, V… values)
    向右边批量添加元素。

  • rightPushAll(K key, Collection values)
    以集合方式向右边添加元素。

  • rightPushIfPresent(K key, V value)
    向已存在的集合中添加元素。

  • size(K key)
    获取集合长度。

  • leftPop(K key)
    移除集合中的左边第一个元素。

  • leftPop(K key, long timeout, TimeUnit unit)
    移除集合中左边的元素在等待的时间里,如果超过等待的时间仍没有元素则退出。

  • rightPop(K key)
    移除集合中右边的元素。

  • rightPop(K key, long timeout, TimeUnit unit)
    移除集合中右边的元素在等待的时间里,如果超过等待的时间仍没有元素则退出。

  • rightPopAndLeftPush(K sourceKey, K destinationKey)
    移除集合中右边的元素,同时在左边加入一个元素。

  • rightPopAndLeftPush(K sourceKey, K destinationKey, long timeout, TimeUnit unit)
    移除集合中右边的元素在等待的时间里,同时在左边添加元素,如果超过等待的时间仍没有元素则退出。

  • set(K key, long index, V value)
    在集合的指定位置插入元素,如果指定位置已有元素,则覆盖,没有则新增,超过集合下标+n则会报错。

  • remove(K key, long count, Object value)
    从存储在键中的列表中删除等于值的元素的第一个计数事件。count> 0:删除等于从左到右移动的值的第一个元素;count< 0:删除等于从右到左移动的值的第一个元素;count = 0:删除等于value的所有元素。

  • trim(K key, long start, long end)
    截取集合元素长度,保留长度内的数据。

opsForZSet (ZSet)

  • add(K key, V value, double score)
    添加元素到变量中同时指定元素的分值。

  • range(K key, long start, long end)
    获取变量指定区间的元素

  • rangeByLex(K key, RedisZSetCommands.Range range)
    用于获取满足非score的排序取值。这个排序只有在有相同分数的情况下才能使用,如果有不同的分数则返回值不确定。

  • rangeByLex(K key, RedisZSetCommands.Range range, RedisZSetCommands.Limit limit)
    用于获取满足非score的设置下标开始的长度排序取值。

  • add(K key, Set<ZSetOperations.TypedTuple> tuples)
    通过TypedTuple方式新增数据

  • rangeByScore(K key, double min, double max)
    根据设置的score获取区间值。

  • rangeByScore(K key, double min, double max,long offset, long count)
    根据设置的score获取区间值从给定下标和给定长度获取最终值

  • rangeWithScores(K key, long start, long end)
    获取RedisZSetCommands.Tuples的区间值

  • rangeByScoreWithScores(K key, double min, double max)
    获取RedisZSetCommands.Tuples的区间值通过分值

  • rangeByScoreWithScores(K key, double min, double max, long offset, long count)
    获取RedisZSetCommands.Tuples的区间值从给定下标和给定长度获取最终值通过分值。

  • count(K key, double min, double max)
    获取区间值的个数

  • rank(K key, Object o)
    获取变量中元素的索引,下标开始位置为0

  • scan(K key, ScanOptions options)
    匹配获取键值对,ScanOptions.NONE为获取全部键值对;ScanOptions.scanOptions().match("C").build()匹配获取键位map1的键值对,不能模糊匹配

  • score(K key, Object o)
    获取元素的分值

  • zCard(K key)
    获取变量中元素的个数

  • incrementScore(K key, V value, double delta)
    修改变量中的元素的分值,原来的分值上面相加

  • reverseRange(K key, long start, long end)
    索引倒序排列指定区间元素

  • reverseRangeByScore(K key, double min, double max)
    倒序排列指定分值区间元素

  • reverseRangeByScore(K key, double min, double max, long offset, long count)
    倒序排列从给定下标和给定长度分值区间元素

  • reverseRangeByScoreWithScores(K key, double min, double max)
    倒序排序获取RedisZSetCommands.Tuples的分值区间值

  • reverseRangeByScoreWithScores(K key, double min, double max, long offset, long count)
    倒序排序获取RedisZSetCommands.Tuples的从给定下标和给定长度分值区间值

  • reverseRangeWithScores(K key, long start, long end)
    索引倒序排列区间值

  • reverseRank(K key, Object o)
    获取倒序排列的索引值

  • intersectAndStore(K key, K otherKey, K destKey)
    获取2个变量的交集存放到第3个变量里面

  • intersectAndStore(K key, Collection otherKeys, K destKey)
    获取多个变量的交集存放到第3个变量里面

  • unionAndStore(K key, K otherKey, K destKey)
    获取2个变量的合集存放到第3个变量里面

  • unionAndStore(K key, Collection otherKeys, K destKey)
    获取多个变量的合集存放到第3个变量里面

  • remove(K key, Object... values)
    批量移除元素根据元素值

  • removeRangeByScore(K key, double min, double max)
    根据分值移除区间元素

  • removeRange(K key, long start, long end)
    根据索引值移除区间元素