目录
- 通用命令
- 指定数据结构命令
- 键值类型
- 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个位置。
慢查询日志配置
慢查询日志指标参数
slowlog-log-slower-than:慢查询日志阈值,单位是毫秒,默认是10000毫秒
slowlog-max-len:最多记录多少条慢查询日志,默认128
获取慢查询日志
查询慢查询日志条数:slowlog len
查询慢查询日志列表(默认是时间倒序的):slowlog get 10
单条日志说明