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进行备份和恢复。
有时候我们并不想让自己的应用能多次进行启动,所以本文主要讲解下如何限制Electron的应用多次被启动。
grep命令是常用个一个命令。能够从文本文件或管道数据流中筛选匹配的行及数据,如果使用正则表达式进行一起使用,功能会更加强大。
http_image_filter_module是nginx提供的集成图片处理模块,支持nginx-0.7.54以后的版本,在网站访问量不是很高磁盘有限不想生成多余的图片文件的前提下可,就可以用它实时缩放图片,旋转图片,验证图片有效性以及获取图片宽高以及图片类型信息。
对加密相关概念整理
Nginx作为使用量非常大的Web服务器,但是如果遇到一个访问量比较大的网站,其访问日志会快速的进行增长,如果一直将所有的访问日志存放在一个文件中肯定是不对的,所以我们就需要对访问量大的访问日志进行分割,然后按照一定的时间删除不需要的日志文件。
快速生成表格
在使用Git的过程中,不想每次都输入用户名和密码去拉取代码,所以就需要保存这些信息,那么既然有保存了,就必须有清除功能。
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问题
在Mac电脑中,如何对Git的用户名和密码进行修改呢?起初不懂Mac,所以整了很久,本文将记录如何对这个进行操作,以便后期使用。