Redis键管理
简介首先我们通过fake2db生成一批测试数据,生成过程查看《Python常用包整理-fake2db:一个生成测试数据的工具》
首先我们通过fake2db生成一批测试数据,生成过程查看《Python常用包整理-fake2db:一个生成测试数据的工具》
1、数据准备
#进入redis-cli刷新db
127.0.0.1:6379> FLUSHALL
OK
#通过fake2db写入测试数据
[root@localhost ~]# fake2db --rows 10000 --db redis
2018-07-06 23:14:13,894 root Rows argument : 10000
2018-07-06 23:14:32,266 root simple_registration Commits are successful after write job!
2018-07-06 23:15:27,276 root detailed_registration Commits are successful after write job!
2018-07-06 23:16:55,702 root companies Commits are successful after write job!
2018-07-06 23:16:58,608 root user_agent Commits are successful after write job!
2018-07-06 23:18:06,923 root customer Commits are successful after write job!
2、通过DBSIZE获取键的个数
127.0.0.1:6379> DBSIZE
(integer) 50000
3、通过KEYS命令获取所有的键
127.0.0.1:6379> KEYS *
...
49994) "customer:3129"
49995) "company:2424"
49996) "simple_registration:3893"
49997) "company:308"
49998) "user_agent:3968"
49999) "detailed_registration:1190"
50000) "user_agent:8304"
(1.33s)
4、通过SCAN迭代获取所有的键
127.0.0.1:6379> SCAN 0
1) "4096"
2) 1) "customer:9271"
2) "customer:3949"
3) "company:6902"
4) "simple_registration:8251"
5) "user_agent:5049"
6) "customer:2693"
7) "detailed_registration:13"
8) "customer:348"
9) "company:7015"
10) "customer:2842"
127.0.0.1:6379> SCAN 4096 #从上一次迭代的游标返回值继续
1) "34816"
2) 1) "simple_registration:4892"
2) "customer:7291"
3) "customer:6890"
4) "detailed_registration:7336"
5) "user_agent:3771"
6) "company:3778"
7) "detailed_registration:2386"
8) "simple_registration:7600"
9) "detailed_registration:5166"
10) "simple_registration:2352"
127.0.0.1:6379> SCAN 0 count 20 #指定返回的个数,默认10个
1) "34816"
2) 1) "customer:9271"
2) "customer:3949"
3) "company:6902"
4) "simple_registration:8251"
5) "user_agent:5049"
6) "customer:2693"
7) "detailed_registration:13"
8) "customer:348"
9) "company:7015"
10) "customer:2842"
11) "simple_registration:4892"
12) "customer:7291"
13) "customer:6890"
14) "detailed_registration:7336"
15) "user_agent:3771"
16) "company:3778"
17) "detailed_registration:2386"
18) "simple_registration:7600"
19) "detailed_registration:5166"
20) "simple_registration:2352"
5、使用DEL命令或UNLINK命令删除键,UNLINK命令在Redis4.0以上版本引入,主要用于执行大KEY的异步删除
127.0.0.1:6379> DEL "customer:9271" "customer:3949"
(integer) 2
127.0.0.1:6379> DBSIZE
(integer) 49998
127.0.0.1:6379> UNLINK "company:6902"
(integer) 1
127.0.0.1:6379> DBSIZE
(integer) 49997
6、使用EXISTS命令判断一个键是否存在
127.0.0.1:6379> EXISTS "company:6925"
(integer) 1
127.0.0.1:6379> EXISTS "company:692500000"
(integer) 0
7、使用TYPE命令获取键的数据类型
127.0.0.1:6379> TYPE "company:6925"
hash
8、使用RENAME命令来重命名一个键
127.0.0.1:6379> RENAME "company:6925" "aaa_999"
OK
127.0.0.1:6379> EXISTS "company:6925"
(integer) 0
127.0.0.1:6379> EXISTS "aaa_999"
(integer) 1
注意:
1、KEYS命令尽量不要在键太多的场景下使用,而使用SCAN命令代替,否则会使得服务器阻塞
2、DEL命令也是,如果删除的键是字符串以外的数据类型,那么当元素的数据量很大时可能会使服务器延迟。所以最好使用UNLINK代替。UNLINK会在另一个线程而不是主事件循环线程中执行删除操作,不会阻塞事件的处理。
3、RENAME命令会在目标键已存在时将其删除,如DEL可能导致高延迟,所以先将目标键使用UNLINK删除后再重名了。
其他命令
DUMP/RESTORE命令可以用于序列化和反序列化操作,所以可以使用这两个命令对Redis进行备份和恢复。
《康熙王朝》是一部非常优秀的电视连续剧,陈道明演的康熙是我觉得最有帝王气魄,让人意犹未尽,本文主要记录一小段非常经典的对白。
pgrep命令可以查找匹配条件的进程号
PDF2SVG可将(一页)PDF 文件合并为可被 Inkscape 打开的可缩放矢量图形 (SVG) 文件。
在学习Laravel核心代码的时候,在容器注册的过程中,看到了Closure。平时在使用PHP的过程中,自己使用闭包还是比较少的,所以本文将介绍下PHP的闭包Closure。
单一职责原则(Single Responsibility Principle,SRP)又称单一功能原则,由罗伯特·C.马丁(Robert C. Martin)于《敏捷软件开发:原则、模式和实践》一书中提出的。这里的职责是指类变化的原因,单一职责原则规定一个类应该有且仅有一个引起它变化的原因,否则类应该被拆分(There should never be more than one reason for a class to change)。
快速生成表格
Electron页面跳转、浏览器打开链接和打开新窗口
在使用Git的过程中,不想每次都输入用户名和密码去拉取代码,所以就需要保存这些信息,那么既然有保存了,就必须有清除功能。
在Mac电脑中,如何对Git的用户名和密码进行修改呢?起初不懂Mac,所以整了很久,本文将记录如何对这个进行操作,以便后期使用。
Docker编译镜像出现:fetch http://dl-cdn.alpinelinux.org/alpine/v3.12/main/x86_64/APKINDEX.tar.gz
ERROR: http://dl-cdn.alpinelinux.org/alpine/v3.12/main: temporary error (try again later)
WARNING: Ignoring APKINDEX.2c4ac24e.tar.gz: No such file or directory问题