目录

  • 通用命令
  • 指定数据结构命令
  • 键值类型
  • List数据类型
  • Hash类型
  • Set类型
  • Zset类型
  • 二进制类型
  • 系统命令
  • 发布订阅
  • 通配符和scan的使用
  • 慢查询日志配置

通用命令

命名

说明

例子

keys

查看指定指定通配符的key

keys keys key1

dbsize

返回整个数据库中key的数量

exists

判断指定key是否存在

exists key1

del

删除指定key,返回删除的个数

del key1

expire

设置在多长时间以后过期(秒)

expire k1 10

expireat

设置在指定时间过期

expireat k1 时间戳

pexpire

设置多长时间以后过期(毫秒)

pexpire k1 10000

pexpireat

设置在指定时间过期(毫秒)

pexpire k1 时间戳(毫秒)

persist

取消设置的过期时间

persist k1

ttl

查询剩余过期

ttl k1

pttl

查询剩余过期(放回的毫秒)

pttl k2

rename

重命名

rename k2 k1

randomkey

随机返回一个key

flushall

清空所有key

flushdb

清空当前数据库

type

查看value的类型

type k1

指定数据结构命令

键值类型

命令

说明

例子

setnx

如果不存在才添加

setnx k2 v2

set

添加,如果存在就覆盖

set k1 v1

setex

设置,vk的同时设置过期时间

setex k1 100 1

get

获取

get k2

mset

一次设置多个键值对

mset k1 v11 k2 v22

mget

一次获取多个键的值

mget k1 k2

del

删除

del k11

incr

自增(需要值是数字类型)

incr k1

incrby

指定增加步长的自增(需要值是数字类型)

incr k1 100

decr

自减(需要值是数字类型)

decr k1

decrby

自减,指定步长(需要值是数字类型)

decrby k1 100

strlen

返回值的长度(需要值是数字类型)

strlen k1

append

在value后面追加

append k1 123

List数据类型

命令

说明

例子

lpush

从列表左边添加

lpush list1 1

rpush

从列表右边添加

rpush list1 2

lpop

从列表左边弹出一个元素

lpop list1

rpop

从列表右边弹出一个元素

lpop list1

llen

查看列表长度

llen list1

lrange

查看列表指定范围的元素

lrange list1 0 2

lrem

移除一定数量的元素

lrem list1 0 1

lindex

查看列表指定下标的元素

lindex list1 0

lset

修改列表指定下标的元素

lset list1 1 1

lpushx

只有集合存在的时候才会插入

lpushx list1 1

lmove

从一个移动到另外一个集合

LMOVE source destination RIGHT LEFT

Hash类型

hash是两层KV,很多用法和VK类似,但是没有expire 没有 incr。

命令

说明

例子

hsetnx

hash里面字段存在才能设置成功

hsetnx user1 name zhangsan

hset

设置字段的值,总是覆盖

hset user1 name zhangsan1

hget

得到字段的值

hget user1 name

hmset

一次设置多个字段的值

hmset user name name1 age 33 des des1

hmget

一次得到多个字段的值

hmget user1 name age des

hgetall

得到所有字段和值

hgetall user1

hkeys

得到所有字段

hkeys user1

hvals

得到所有值

hvals user1

hexists

判断字段是否存在

hexists user1

hlen

得到字段个数

hlen user1

hdel

删除指定字段

hdel user1 des

hincrby

字段的值自增长

hincrby user1 age 1

Set类型

命令

说明

例子

sadd

向set中添加一个元素

sadd set1 1

srem

从set中移除指定元素

srem set1 2

scard

查看set的当前长度

scard set1

smembers

查看set的所有元素

smembers set1

sismember

指定元素是否是存于set内

sismember set1 1

srandmember

随机返回2个元素,但是不从set中删除

srandmember set1 2

spop

随机返回1个元素,并且从set中删除

spop set1 1

Zset类型

没有zdecrby指令,zincrby可以传入负数

命令

说明

例子

zadd

向有序set里面添加一个元素

zadd z1 1 a

zrem

从有序集合里面移除指定元素

zrem z1 a

zscore

返回指定元素的评分

zscore z1 a

zincrby

返回指定元素的评分自增

zincrby z1 3 a

zcard

放回zset的长度

zcard z1

zrange

正序查看zset

zrange z1 0 100

zrevrange

倒序查看zset

zrevrange z1 0 100

zrank

查看指定元素的排行位置

zscore z1 a

zpopmin

弹出评分最小的几个

zpopmin z1 1

zpopmax

弹出评分最大的几个

zpopmax z1 1

zinterstore

zunionstore

zdiffstore

取交并差集,然后存到指定地方

zunionstore zdesc 2 z1 z2

zrangestore

把指定范围存到另一个key 中

zremrangebyscore

zremrangebyrank

zremrangebylex

三种批量移除,分别是通过评分范围,排序访问,和元素位置

zrangebylex

根据value的顺序查询(需要评分相等)

zrangebylex z1 [a (z limit 0 10

二进制类型

命令

说明

例子

setbit

修改指定位置的bit数据

setbit bl 100 1

getbit

查询指定bit位的数据

getbit bl 4

bitcount

得到1的数量

getcount bl

bitop

bit的位运算,运算方式支持,与或非亦或 and or not xor

bitop and rt bl b2

系统命令

命令

说明

例子

client list

查看连接列表

client list

client getname

查询当前连接名字

client setname

设置当前连接名字

client setname myConn

client kill ip:port

杀死指定的连接(client list里面可以看到连接ip:端口)

client kill 192.168.110.1:6053

config get parameter

查询配置

config get requirepass

config set parameter value

修改配置

config set requirepass 123456

config resetstat

清除一些状态

flushdb

清空当前DB

flushall

清空当所有DB

info

查看服务器,客户端,持久化,状态,副本等信息

save

手动触发持久化

bgsave

后台保存

bgsave

lastsave

查看上一次save的时间

monitor

监控redis的操作,读写等操作会被控制台输出

slaveof host port

将当前服务器转变为指定服务器的从属服务器

slowlog get id

查询慢查询日志

slowlog get 10 (查询第10 条)

slowlog len

查询有多少慢查询日志

select

选择数据库

select 0

redis-cli -h xxx -p xxx

客户端登录远程服务器

redis-cli -h 192.168.1.66 t -p 6379

auth password

密码授权

auth 123456

发布订阅

redis的发布定于不支持持久化,是瞬时状态,建议用正常的mq

命名

说明

例子

publish cName

发布消息

publish top1 m1

subscribe cName

订阅一个渠道渠道消息

subscribe top1

unsubscribe cName

取消订阅消息

unsubscribe top1

pubsub channels

查看订阅渠道列表,只能看到渠道,有通配符的看不到

pubsub channels

pubsub channels *

pubsub numsub cName

查询指定渠道的定于数量

pubsub numsub top1

psubscribe pattern

订阅消息的时候支持通配符

psubscribe top*

unpsubscribe pattern

取消通配符格式订阅消息

unpsubscribe top*

pubsub numpat

查看有通配符的订阅数量

PUBSUB NUMPAT

通配符和scan的使用

语法:SCAN cursor [MATCH pattern] [COUNT count]

  • cursor - 游标。
  • pattern - 匹配的模式。
  • count - 指定每次遍历多少个集合。

redis存数据是hash结构的,类似hashMap的数组+ 链表。游标和count对应 hashmap的数组下标位置和向前遍历几个下标。返回游标不为0,但是返回的结果可能是没有数据,这是因为这一块区域没有数据。结束标志需要依赖游标为0为准。

scan 对不同数据结构有不同的命令,比如 sscan,hscan,zsan

用法:scan 0 match k* count 10
返回的第一行是游标,后面的是返回的数据,然后不停使用新的游标访问,直到游标为0

匹配不带就是所有都匹配,count 不指定默认是向前扫描10个位置。

> scan 0 count 10
9
chars
k2
bl
set1
k4
l1
DAILY_EXCHANGE_RATE
k8
user
zdesc
user1
> scan 9 count 10
0
k5
k3
rt
b2
k6
k7
z1
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.

慢查询日志配置

慢查询日志指标参数
slowlog-log-slower-than:慢查询日志阈值,单位是毫秒,默认是10000毫秒
slowlog-max-len:最多记录多少条慢查询日志,默认128

> config get slowlog-log-slower-than
slowlog-log-slower-than
10000
> config get slowlog-max-len
slowlog-max-len
128
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.

获取慢查询日志
查询慢查询日志条数:slowlog len
查询慢查询日志列表(默认是时间倒序的):slowlog get 10

> slowlog len
(integer) 10

> slowlog get 10
1) 1) "16"
   2) "1717072716"
   3) "43"
   4) 1) "info"
   5) "192.168.110.1:9128"
   6) "redisinsight-common-3032ed4d"
2) 1) "15"
   2) "1717072715"
   3) "1"
   4) 1) "ping"
   5) "192.168.110.1:6052"
   6) "vm66"
3) 1) "14"
   2) "1717072711"
   3) "60"
   4) 1) "info"
   5) "192.168.110.1:9128"
   6) "redisinsight-common-3032ed4d"
4) 1) "13"
   2) "1717072706"
   3) "64"
   4) 1) "info"
   5) "192.168.110.1:9128"
   6) "redisinsight-common-3032ed4d"
5) 1) "12"
   2) "1717072705"
   3) "1"
   4) 1) "ping"
   5) "192.168.110.1:6052"
   6) "vm66"
6) 1) "11"
   2) "1717072701"
   3) "50"
   4) 1) "info"
   5) "192.168.110.1:9128"
   6) "redisinsight-common-3032ed4d"
7) 1) "10"
   2) "1717072700"
   3) "3"
   4) 1) "slowlog"
      2) "len"
   5) "192.168.110.1:6038"
   6) "redisinsight-cli-3032ed4d-b2e2"
8) 1) "9"
   2) "1717072696"
   3) "51"
   4) 1) "info"
   5) "192.168.110.1:9128"
   6) "redisinsight-common-3032ed4d"
9) 1) "8"
   2) "1717072695"
   3) "1"
   4) 1) "ping"
   5) "192.168.110.1:6052"
   6) "vm66"
10) 1) "7"
   2) "1717072692"
   3) "60"
   4) 1) "info"
   5) "192.168.110.1:9128"
   6) "redisinsight-common-3032ed4d"
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
  • 56.
  • 57.
  • 58.
  • 59.
  • 60.
  • 61.
  • 62.
  • 63.
  • 64.
  • 65.

单条日志说明

1) 1) "16"                                      #日志序号
   2) "1717072716"                              #产生时间
   3) "43"                                      #耗时
   4) 1) "info"                                 #操作
   5) "192.168.110.1:9128"                      #客户端ip端口
   6) "redisinsight-common-3032ed4d"            #客户端名字
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.