linux. redis大小查询,Redis常用命令

66b52468c121889b900d4956032f1009.png

8种机械键盘轴体对比

本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选?

环境说明环境说明CentOS7操作系统

Redis-3.2.9Key-Value 内存数据库

官方文档

中文文档

历史版本下载【linux】

历史版本下载【windows,zip解压即可使用】

可视化客户端【windows】

使用场景排行榜应用,取 TOP N 操作

需要精确设定过期时间的应用

计数器应用

唯一操作,如:分布式锁、生成全局 ID

实时系统,反垃圾系统

Pub/Sub 构建实时消息系统

构建队列系统

构建反向索引

缓存

1 Keys

1.1 del Key1del key1 key2 ... KeynTIPS:返回真正删除的 key 的数量。

1.1.1 示例:删除 site【不存在的情况】1del site

del_non_existent_site.png

1.1.2 示例:删除 site【存在的情况】1

2> set site www.wise.com

> del site

del_existent_site.png

1.1.3 示例:删除多个键,如:site1 site2 site31

2

3

4> set site1 www.wise1.com

> set site2 www.wise2.com

> set site3 www.wise3.com

> del site1 site2 site3

del_keys.png

1.2 rename Key

把key改名为newkey

1> rename key newkeyTIPS:若 newkey 已存在,则 newkey 的原值被覆盖

示例:把 site 改名为 website

1

2> set site www.wise.com

> get site

get_site_1.png1

2> rename site website

> get website

get_site_2.png1> get site

get_site_3.png

1.3 renamenx Key

类似 rename 命令,但只有目标 key 不存在时,才会修改成功。

1.4 move Key

将 ke y移到目的 db【db 默认值是:0-15】1> move key db

1.5 keys pattern

查询 key【pattern 表示正则表达式】

1> keys pattern

在 redis 里,允许模糊查询 key,有3个通配符 *, ? ,[]*: 通配任意多个字符

?: 通配单个字符

[]: 通配括号内的某1个字符

设置多个 Strings 键值对

1> mset one 1 two 2 three 3 four 4

1.5.1 查询以 o 字母开头的 key1> keys o*

keys_o_star.png

1.5.2 查询以 o 字母结尾的 key1> keys *o

keys_star_o.png

1.6 exists Key

判断是否存在 key

1> exists keyTIPS:返回 0 表示不存在,返回 1 表示存在。

1.7 ttl Key

查询 key 的生命周期

1> ttl keyTIPS:返回秒数,-1表示永不过期,-2表示 key 不存在。

1.8 expire Key

设置 key 的生命周期,以秒为单位

1> expire site 整型值

1.9 sort key1

返回或存储 key 的 list、set 或 sorted set 中的元素

1> sort key [by pattern] [limit offset count] [get pattern] [asc|desc] [alpha] destination

1.9.1 示例:按值本身大小排序【默认升序】

按值升序排序

1

2> rpush numbers 9 5 1 3 2

> sort numbers

1> sort numbers asc

sort_numbers.png

按值降序排序

1> sort numbers desc

sort_numbers_desc.png

1.9.2 示例:按分值排序1

2> zadd scores 4 peter 5 jack 6 tom

> zrange scores 0 -1

zrange_scores_0_minus1.png

1.9.3 示例:基于外部键的值进行排序1

2

3> sadd names peter jack torm

> mset peter-score 4 jack-score 5 tom-score 3

> sort names by *-score

sort_names_by_score.png

1.9.4 示例:指定返回结果的数量1

2> rpush numbers 8 1 3 9 2 0 4 6 7 5

> sort numbers limit 0 3

sort_numbers_limit.png

1.9.5 示例:存储排序结果1

2

3> rpush numbers 8 1 3 9 2 0 4 6 7 5

> sort numbers store sorted-numbers

> lrange sorted-numbers 0 -1

sort_numbers_store.png

2 Strings

使用场景:位图记录信息

存储时效数据

2.1 set key

添加键值对

1> set key value [ex 秒数] / [px 毫秒数] [nx] / [xx]nx: 表示 key 不存在时,则执行操作

xx: 表示 key 存在时,则执行操作TIPS:若 ex,px 同时写,则以后面的有效期为准。

2.2 mset key

一次性添加一个或多个键值对

1> mset key1 v1 key2 v2 ....

2.3 get key

获取 key 的值

1> get key

2.4 mget key

一次性获取一个或多个 key 的值

1> mget key1 key2 …

2.5 setrange key

把字符串的 offset 偏移字节,改成 value

1> setrange key offset value

示例:将为 hell o改为 hexlo

1

2

3> set greet hello

> setrange greet 2 x

> get greet

setrange_greet_2_x.pngTIPS:注:若偏移量大于字符长度, 该字符自动补 0x00。

2.6 getrange key

获取字符串中 [start, stop] 范围的值

1> getrange key start stopstart>=length, 则返回空字符串

stop>=length,则截取至字符结尾

若 start 所处位置在 stop 右边, 返回空字符串TIPS:对于字符串的下标,左数从0开始,右数从-1开始。

示例:获取 title 值的部分字符串

1

2> set title 'chinese'

> getrange title 0 3

getrange_title_1.png1> getrange title 1 -2

getrange_title_2.png

2.7 incr key

指定的 key 的值加1,并返回加1后的值

1> incr keyTIPS:不存在的 key 当成0,再 incr 操作,范围为64位有符号。

2.8 incrby key

指定的 key 的值加 n,并返回加 n 后的值

1> incrby key n

2.9 decr key

指定的 key 的值减1,并返回减1后的值

1> decr key

2.10 decrby key

指定的 key 的值减n,并返回减 n 后的值

1> decrby key n

2.11 getbit key

使用场景:使用位图法记录大量信息。

获取值的二进制表示,对应位上的值(从左,从0编号)

1> getbit key offset

示例:获取字符A的二进制表示【01000001】

1

2> set char A

> getbit char 1

getbit_char_1.png

2.12 setbit key

设置 offset 对应二进制位上的值

1> setbit key offset value若 offset 过大,则会在中间填充0

offset 最大2^32-1,可推出最大的的字符串为512MTIPS:返回值为该位上的旧值。

示例:将Q【01010001】转为q【01110001】

1

2

3

4> set upper Q

> get upper

> setbit upper 2 1

> get upper

get_upper.png

2.13 bitop operation

对 key1,key2..keyN 作 operation,并将结果保存到 destkey 上,operation 可以是 AND 、 OR 、 NOT 、 XOR

1> bitop operation destkey key1 [key2 ...]TIPS: 对于 NOT 操作, key 不能多个。

示例:将Q【01010001】转为q【01110001】

1

2

3

4

5

6

7> setbit lower 7 0

> setbit lower 2 1

> get lower

> set char Q

> get char

> bitop or char char lower

> get char

get_char.png

2.14 bitcount key

统计字符串被设置为1的bit数

1> bitcount key [start end]TIPS:一般情况下,给定的整个字符串都会被进行计数,通过指定额外的 start 或 end 参数,可以让计数只在特定的位上进行。

示例:统计 mykey 被设置为1的 bit 数

1

2

3> set mykey "foobar"

> get mykey

> bitcount mykey

bitcount_mykey.png1> bitcount mykey 0 0

bitcount_mykey_0_0.png1> bitcount mykey 1 1

bitcount_mykey_1_1.png

3 运维

3.1 切换数据库【默认0-15】1> select n

3.2 显示服务器时间 , 时间戳(秒), 微秒数1> time

3.3 显示当前数据库的key的数量1> dbsize

3.4 后台进程重写日志【AOF】1> bgrewriteaof

3.5 后台保存RDB快照【后台运行】1> bgsave

3.6 保存RDB快照1> bgsave

3.7 显示上次保存时间【恢复数据时使用,可以算出丢失多少数据】1> lastsave

3.8 将当前实例设为master的slave【动态伸缩】1> slaveof master-host port

3.9 清空所有库的所有键1> flushall

3.10 清空当前库所有键1> flushdb

3.11 关闭Redis服务【等价于systemctl stop redis】1> shutdown [save/nosave]TIPS: 若不小心运行了 flushall, 立即 shutdown nosave ,关闭服务,以免AOF日志重写丢失数据。然后手工编辑 AOF 文档, 去掉文档中的 “flushall” 相关行, 最后开启服务,则恢复数据。若 flushall 之后,恰好 AOF 日志重写【bgrewriteaof】了,那么 AOF 文档就清空了,数据丢失。

3.12 显示慢查询1> slowlog get

slowlog_get.png

查看 Redis 服务信息

1> info

info.png

重要参数参数说明used_memory:859192数据结构的空间

used_memory_rss:7634944实占空间

mem_fragmentation_ratio:8.89前 2 者的比例,1.N 为佳,若值过大,说明内存的碎片化严重,可以导出再导入一次

role:slave角色【 master 或 slave 】

master_host:192.168.1.128主节点 IP

master_port:6379主节点端口

master_link_status:up主节点状态【 up 或 down 】

rdb_changes_since_last_save:0上次 RDB 保存以后改变的 key 次数

rdb_last_save_time:1375224063上次持久化时间

latest_fork_usec:936上次导出 RDB 快照,持久化花费微秒

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值