1. Redis 键值相关命令及操作
序号 | 命令 | 格式 | 解释 |
---|
1 | keys | keys pattern | 返回满足给定要求的所有 key |
2 | exists | exists keys | 确认一个 key 是否存在 |
3 | del | del key | 删除一个 key |
4 | expire | expire key seconds | 设置一个 key 的过期时间(单位:秒) |
5 | move | move key db | 当前数据库中的 key 转移到其它数据库中 |
6 | persist | persist key | 移除给定 key 的过期时间 |
7 | randomkey | randomkey | 随机返回 key 空间的一个 key |
8 | rename | rename key new key | 重命名 key |
9 | type | type key | 返回值的类型 |
// 用表达式“*”,取出所有 key
keys * // 返回:
1) "key7"
2) "mycar"
3) "mylist"
4) "myzset3"
...
keys mylist* // 返回
1) "mylist"
2) "mylist4"
3) "mylist3"
4) "mylist7"
5) "mylist6"
6) "mylist5"
7) "mylist2"
// 确认一个 key 是否存在
exists wdm // 返回 (integer) 0
exists name // 返回 (integer) 1
del name // 返回 (integer) 1。删除一个 key
exists name // 返回 (integer) 0
expire mylist 10 // 返回 (integer) 1。设置 10 秒后过期
ttl mylist // 返回 (integer) 5。还剩 5 秒过期
ttl mylist // 返回 (integer) -2。-2 表示已经过期
lrange mylist 0 -1 // 返回 (empty list or set)
// 将当前数据库中的 key 转移到其它数据库中
select 0 // 返回 OK
set age 30 // 返回 OK
get age // 返回 "30"
move age 1 // 返回 (integer) 1
get age // 返回 (nil)
select 1 // 返回 OK
get age // 返回 "30"
// 移除给定 key 的过期时间
select 0 // 返回 OK
lpush mylist hello // 返回 (integer) 1
expire mylist 300 // 返回 (integer) 1
ttl mylist // 返回 (integer) 295
ttl mylist // 返回 (integer) 290
persist mylist // 返回 (integer) 1
ttl mylist // 返回 (integer) -1。-1 表示没有过期时间
randomkey 返回 "myset3"。随机返回 key
randomkey 返回 "key4"
get andy // 返回 "b"
rename andy andyliu // 返回 "OK"。重命名 key
get andyliu // 返回 "b"
type andyliu // 返回 string
type mylist // 返回 list
type myset // 返回 set
type myzset // 返回 zset
2. Redis 服务器相关命令及操作
序号 | 命令 | 格式 | 解释 |
---|
1 | ping | ping [message] | 测试连接是否存活 |
2 | echo | echo message | 在命令行打印一些内容 |
3 | select | select index | 选择数据库 |
4 | quit | quit - | 退出连接 |
5 | dbsize | dbsize - | 返回当前数据库中 key 的数目 |
6 | info | info section | 获取服务器的信息和统计 |
7 | config get | config get | 获取服务器配置信息 |
8 | flushdb | flushdb | 删除当前选择数据库中的所有 key |
9 | flushall | flushall | 删除所有数据库中的所有 key |
ping // 返回 PONG。测试服务器是否激活
echo hualaoshuan // 返回 "hualaoshuan"。打印内容
select 9 // 返回 "OK"。选择数据库,默认 0 。
select 0 // 返回 "OK"。
dbsize // 返回 (integer) 34。返回当前数据库 key 的数量
info // 返回
redis_version:5.0.5
redis_git_sha1:00000000
redis_git_dirty:0
redis_build_id:xxxxxxxxxxxx
redis_mode:standalone
...
config get * // 返回
1) "dbfilename"
2) "dump.rdb"
3) "requirepass"
4) "asdf"
5) "masterauth"
...
214) ""
config get dir // 返回
1) "dir"
2) "/usr/local/redis/bin"
config get s* // 返回
1) "slave-announce-ip"
2) ""
3) "stream-node-max-bytes"
4) "4096"
...
31) "save"
32) "900 1 300 10 60 10000"
33) "slaveof"
34) ""
// * save 这个参数,900 / 300 / 60 秒至少有 1 /10 / 10000 个 key 被改动,就触发一次 save 操作
// 删除当前数据库所有 key
// 删除所有数据库的所有 key
// 退出服务器
3. Redis 中 sort 排序函数及操作
序号 | 命令 | 格式 | 解释 |
---|
1 | sort key | sort key | 简单的对集合自身值排序并返回排序结果 |
2 | desc | sort key desc | 按照从大到小的顺序进行排序 |
3 | alpha | sort key alpha | 按照字典顺序对非数字元素进行排序 |
4 | by | sort key by pattern | 按照给定pattern组合成新的key,并按照新key中对应的内容进行排序 |
5 | get | get pattern | 获取指定模式(pattern)作为新key对应的值 |
6 | limit | limit start count | 限定返回结果的数量 |
7 | store | store dstkey | 将排序内容保存到指定key中 |
// 对集合自身元素进行排序(从小到大),并返回排序结果
// asc:默认排序,从小到大
// desc: 从大到小
// alpha:按字母顺序排序
lpush mylist 12 11 14 13 // 返回 (integer) 4
sort mylist // 返回
1) "11"
2) "12"
3) "13"
4) "14"
lpush myphone apple oppo meizu samsung // 返回 (integer) 4
sort myphone // 返回 (error)
sort myphone desc alpha // 返回
1) "samsung"
2) "oppo"
3) "meizu"
4) "apple"
// 可以将集合内容按照给定的模式组成新的 key,并按照新的 key 中对应的内容进行排序。
// list 在插入之后,默认是按照插入时间顺序的反序进行排列的(插入时间离现在最近排前面)
// 因为元素插入 list 链表的时候,是从左侧插入数据的。
// 如果 by 后面的链表对应的值不是数值类型的时候、没有按照字母顺序排序的时候(参考链表 myphone)
// 会导致排序的分值都是相同的,因为程序把 myphone 的值都转为相同的数值类型
lpush u_id 1 2 35 270 // 返回 (integer) 4
mset u_level_1 999 u_level_2 10 u_level_35 8 u_level_270 9999 // 返回 OK
sort u_id by u_level_* desc // 返回
1) "270"
2) "1"
3) "2"
4) "35"
// 只返回响应的 id 是没有什么用的,更希望排序后返回 id 所对应的用户名,这样更友好。
mset u_name_1 jack u_name_2 donmi u_name_270 admin u_name_35 wdm // 返回 OK
sort u_id by u_level_* desc get u_name_* // 返回
1) "admin"
2) "jack"
3) "donmi"
4) "wdm"
// 限定返回结果的数量
// 首先按照 level 级别把 id 进行倒叙排序,然后显示 id 对应的名字。下标从 1 开始,选择 2 条
sort u_id by u_level_* desc get u_name_* limit 1 2 // 返回
1) "jack"
2) "donmi"
// 将排序内容保存到指定的 key 中,保存的类型是 list
// 缓存排序结果,节省 CPU 开销
sort u_id by u_level_* desc get u_name_* limit 1 2 store cto // 返回 (integer) 2
type cto // 返回 list
lrange cto 0 -1 // 返回
1) "jack"
2) "donmi"