Redis键时间老化的测试

2024-01-25 07:38
文章标签 redis 时间 测试 老化

本文主要是介绍Redis键时间老化的测试,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在使用Redis数据库的时候,临时有一些数据更新的问题,于是进行查找,发现Redis本身自带有键值随时间更新老化的功能。还是非常强大的。


一个expire命令走天下!




最后整理一下Redis常见的命令:

2、适合全体类型的命令

  • EXISTS(key) 确认一个 key 是否存在;
  • DEL(key) 删除一个 key;
  • TYPE(key) 返回值的类型;
  • KEYS(pattern) 返回满足给定 pattern 的所有 key;
  • RANDOMKEY:随机返回 key 空间的一个key;
  • RENAME(oldname, newname) 将 key 由 oldname 重命名为 newname,若 newname 存在则删除 newname 表示的 key;
  • DBSIZE:返回当前数据库中 key 的数目;
  • EXPIRE(key,ttl) 设定一个 key 的生存时间 ttl(s);
  • TTL(key) 获得一个 key 的活动时间;
  • SELECT(index) 按索引查询;
  • MOVE(key, dbindex) 将当前数据库中的 key 转移到有 dbindex 索引的数据库;
  • FLUSHDB:删除当前选择数据库中的所有 key;
  • FLUSHALL:删除所有数据库中的所有 key。

3、对 STRING 操作的命令

  • SET(key, value) 给数据库中名称为 key 的 string 赋予值 value;
  • GET(key) 返回数据库中名称为 key 的 string 的 value;
  • GETSET(key, value) 给名称为 key 的 string 赋予上一次的value;
  • MGET(key1, key2,…, key{$n}) 返回库中多个 string(它们的名称为key1,key2…)的value;
  • SETNX(key, value) 如果不存在名称为 key 的 string,则向库中添加 string,名称为 key,值为 value;
  • SETEX(key, time, value) 向库中添加 string(名称为key,值为value)同时,设定过期时间time;
  • MSET(key1, value1, key2, value2,…key{$n}, value{$n}) 同时给多个 string 赋值,名称为 key{$i} 的 string 赋值 value{$i};
  • MSETNX(key1, value1, key2, value2,…key{$n}, value{$n}) 如果所有名称为 key{$i} 的 string 都不存在,则向库中添加 string,名称 key{$i} 赋值为 value{$i};
  • INCR(key) 名称为 key 的 string 增1操作;
  • INCRBY(key, integer) 名称为 key 的 string 增加 integer;
  • DECR(key) 名称为 key 的 string 减1操作;
  • DECRBY(key, integer) 名称为 key 的 string 减少 integer;
  • APPEND(key, value) 名称为 key的 string 的值附加 value;
  • SUBSTR(key, start, end) 返回名称为 key 的 string 的 value 的子串。

4、对无索引序列 LIST 操作的命令

  • RPUSH(key, value) 在名称为 key 的 list 尾添加一个值为 value 的元素;
  • LPUSH(key, value) 在名称为 key 的 list 头添加一个值为 value 的 元素;
  • LLEN(key) 返回名称为 key 的 list 的长度;
  • LRANGE(key, start, end) 返回名称为 key 的 list 中 start 至 end 之间的元素(下标从0开始,下同);
  • LTRIM(key, start, end) 截取名称为 key 的 list,保留 start 至 end 之间的元素;
  • LINDEX(key, index) 返回名称为 key 的 list 中 index 位置的元素;
  • LSET(key, index, value) 给名称为 key 的 list 中 index 位置的元素赋值为 value;
  • LREM(key, count, value) 删除 count 个名称为 key 的 list 中值为value的元素。count 为0,删除所有值为 value 的元素,count>0从 头至尾删除 count 个值为 value 的元素,count<0从尾到头删除|count|个值为value的元素;
  • LPOP(key) 返回并删除名称为key的list中的首元素;
  • RPOP(key) 返回并删除名称为key的list中的尾元素;
  • BLPOP(key1, key2,… key{$n}, timeout) LPOP 命令的 block 版本。即当 timeout 为0时,若遇到名称为 key{$i} 的 list 不存在或该 list 为空,则命令结束。如果 timeout>0,则遇到上述情况时,等待 timeout 秒,如果问题没有解决,则对 key{$i}+1 开始的 list 执行 pop 操作;
  • BRPOP(key1, key2,… key{$n}, timeout) RPOP 的 block 版本。参考上一命令;
  • RPOPLPUSH(srckey, dstkey) 返回并删除名称为 srckey 的 list 的尾元素,并将该元素添加到名称为 dstkey 的 list 的头部。

5、对有索引无序集合 SET 操作的命令

  • SADD(key, member) 向名称为 key 的 set 中添加元素 member;
  • SREM(key, member) 删除名称为 key 的 set 中的元素 member;
  • SPOP(key) 随机返回并删除名称为 key 的 set 中一个元素;
  • SMOVE(srckey, dstkey, member) 将 member 元素从名称为 srckey 的集合移到名称为 dstkey 的集合;
  • SCARD(key) 返回名称为 key 的 set 的基数;
  • SISMEMBER(key, member) 测试 member 是否是名称为 key 的 set 的元素;
  • SINTER(key1, key2,…key{$n}) 求交集;
  • SINTERSTORE(dstkey, key1, key2,…key{$n}) 求交集并将交集保存到 dstkey 的集合;
  • SUNION(key1, key2,…key{$n}) 求并集;
  • SUNIONSTORE(dstkey, key1, key2,…key{$n}) 求并集并将并集保存到 dstkey 的集合;
  • SDIFF(key1, key2,…key{$n}) 求差集;
  • SDIFFSTORE(dstkey, key1, key2,…key{$n}) 求差集并将差集保存到 dstkey 的集合;
  • SMEMBERS(key) 返回名称为 key 的 set 的所有元素;
  • SRANDMEMBER(key) 随机返回名称为 key 的 set 的一个元素。

6、对有序集合 ZSET(sorted set)操作的命令

  • ZADD(key, score, member) 向名称为 key 的 zset 中添加元素 member,score 用于排序。如果该元素已经存在,则根据score更新该元素的顺序;
  • ZREM(key, member) 删除名称为 key 的 zset 中的元素 member;
  • ZINCRBY(key, increment, member) 如果在名称为 key 的 zset 中已经存在元素 member,则该元素的 score 增加 increment;否则向集合中添加该元素,其 score 的值为 increment;
  • ZRANK(key, member) 返回名称为 key 的 zset(元素已按 score 从小到大排序)中 member 元素的 rank(即 index,从0开始),若没有 member 元素,返回 “null”;
  • ZREVRANK(key, member) 返回名称为 key 的 zset(元素已按 score 从大到小排序)中 member元素的 rank(即 index,从0开始),若没有 member 元素,返回 “null”;
  • ZRANGE(key, start, end) 返回名称为 key 的 zset(元素已按 score 从小到大排序)中的 index 从 start 到 end 的所有元素;
  • ZREVRANGE(key, start, end) 返回名称为 key 的 zset(元素已按 score 从大到小排序)中的 index 从 start 到 end 的所有元素;
  • ZRANGEBYSCORE(key, min, max) 返回名称为 key 的 zset 中 score >= min 且 score <= max 的所有元素;
  • ZCARD(key) 返回名称为 key 的 zset 的基数;
  • ZSCORE(key, element) 返回名称为 key 的 zset 中元素 element 的 score;
  • ZREMRANGEBYRANK(key, min, max) 删除名称为 key 的 zset 中 rank >= min 且 rank <= max 的所有元素;
  • ZREMRANGEBYSCORE(key, min, max) 删除名称为 key 的 zset 中 score >= min 且 score <= max 的所有元素;
  • ZUNIONSTORE / ZINTERSTORE(dstkeyN, key1,…,keyN, WEIGHTS w1,…wN, AGGREGATE SUM|MIN|MAX) 对N个 zset 求并集和交集,并将最后的集合保存在 dstkeyN 中。对于集合中每一个元素的 score,在进行 AGGREGATE 运算前,都要乘以对于的 WEIGHT 参数。如果没有提供 WEIGHT,默认为1。默认的 AGGREGATE 是 SUM,即结果集合中元素 的 score 是所有集合对应元素进行 SUM 运算的值,而 MIN 和 MAX 是指,结果集合中元素的 score 是所有集合对应元素中最小值和最大值。

7、对有序列表 HASH 操作的命令

  • HSET(key, field, value) 向名称为 key 的 hash 中添加元素 field=value;
  • HGET(key, field) 返回名称为 key 的 hash 中 field 对应的 value;
  • HMGET(key, field1, …,field{$n}) 返回名称为 key 的 hash 中 field{$i} 对应的 value;
  • HMSET(key, field1, value1,…,field{$n}, value{$n}) 向名称为 key 的 hash 中添加元素 field{$i}=value{$i};
  • HINCRBY(key, field, integer) 将名称为 key 的 hash 中 field 的 value 增加 integer;
  • HEXISTS(key, field) 名称为 key 的 hash 中是否存在键为 field 的域;
  • HDEL(key, field) 删除名称为 key 的 hash 中键为 field 的域;
  • HLEN(key) 返回名称为 key 的 hash 中元素个数;
  • HKEYS(key) 返回名称为 key 的 hash 中所有键;
  • HVALS(key) 返回名称为 key 的 hash 中所有键对应的 value;
  • HGETALL(key) 返回名称为 key 的 hash 中所有的键(field)及其对应的 value。

这篇关于Redis键时间老化的测试的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/642548

相关文章

Nginx设置连接超时并进行测试的方法步骤

《Nginx设置连接超时并进行测试的方法步骤》在高并发场景下,如果客户端与服务器的连接长时间未响应,会占用大量的系统资源,影响其他正常请求的处理效率,为了解决这个问题,可以通过设置Nginx的连接... 目录设置连接超时目的操作步骤测试连接超时测试方法:总结:设置连接超时目的设置客户端与服务器之间的连接

redis群集简单部署过程

《redis群集简单部署过程》文章介绍了Redis,一个高性能的键值存储系统,其支持多种数据结构和命令,它还讨论了Redis的服务器端架构、数据存储和获取、协议和命令、高可用性方案、缓存机制以及监控和... 目录Redis介绍1. 基本概念2. 服务器端3. 存储和获取数据4. 协议和命令5. 高可用性6.

如何利用Java获取当天的开始和结束时间

《如何利用Java获取当天的开始和结束时间》:本文主要介绍如何使用Java8的LocalDate和LocalDateTime类获取指定日期的开始和结束时间,展示了如何通过这些类进行日期和时间的处... 目录前言1. Java日期时间API概述2. 获取当天的开始和结束时间代码解析运行结果3. 总结前言在J

Redis的数据过期策略和数据淘汰策略

《Redis的数据过期策略和数据淘汰策略》本文主要介绍了Redis的数据过期策略和数据淘汰策略,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录一、数据过期策略1、惰性删除2、定期删除二、数据淘汰策略1、数据淘汰策略概念2、8种数据淘汰策略

修改若依框架Token的过期时间问题

《修改若依框架Token的过期时间问题》本文介绍了如何修改若依框架中Token的过期时间,通过修改`application.yml`文件中的配置来实现,默认单位为分钟,希望此经验对大家有所帮助,也欢迎... 目录修改若依框架Token的过期时间修改Token的过期时间关闭Token的过期时js间总结修改若依

Go Mongox轻松实现MongoDB的时间字段自动填充

《GoMongox轻松实现MongoDB的时间字段自动填充》这篇文章主要为大家详细介绍了Go语言如何使用mongox库,在插入和更新数据时自动填充时间字段,从而提升开发效率并减少重复代码,需要的可以... 目录前言时间字段填充规则Mongox 的安装使用 Mongox 进行插入操作使用 Mongox 进行更

Redis存储的列表分页和检索的实现方法

《Redis存储的列表分页和检索的实现方法》在Redis中,列表(List)是一种有序的数据结构,通常用于存储一系列元素,由于列表是有序的,可以通过索引来访问元素,因此可以很方便地实现分页和检索功能,... 目录一、Redis 列表的基本操作二、分页实现三、检索实现3.1 方法 1:客户端过滤3.2 方法

Python中操作Redis的常用方法小结

《Python中操作Redis的常用方法小结》这篇文章主要为大家详细介绍了Python中操作Redis的常用方法,文中的示例代码简洁易懂,具有一定的借鉴价值,有需要的小伙伴可以了解一下... 目录安装Redis开启、关闭Redisredis数据结构redis-cli操作安装redis-py数据库连接和释放增

redis防止短信恶意调用的实现

《redis防止短信恶意调用的实现》本文主要介绍了在场景登录或注册接口中使用短信验证码时遇到的恶意调用问题,并通过使用Redis分布式锁来解决,具有一定的参考价值,感兴趣的可以了解一下... 目录1.场景2.排查3.解决方案3.1 Redis锁实现3.2 方法调用1.场景登录或注册接口中,使用短信验证码场

Redis 多规则限流和防重复提交方案实现小结

《Redis多规则限流和防重复提交方案实现小结》本文主要介绍了Redis多规则限流和防重复提交方案实现小结,包括使用String结构和Zset结构来记录用户IP的访问次数,具有一定的参考价值,感兴趣... 目录一:使用 String 结构记录固定时间段内某用户 IP 访问某接口的次数二:使用 Zset 进行