文章目录
- 基础命令
- 名称匹配
- 过期时间
Redis系列:安装和初步使用
基础命令
键,即Key,是值的索引,如果翻译成钥匙会更容易理解一些,相当于打开数据的钥匙。或者从编程语言的角度出发,键就是变量名;而对应到操作系统,那么可类比为文件名,值就是文件的内容。
那么对一个变量来说,至少有一个类型属性;而对于一个文件而言,至少需要支持创建、删除、移动、重命名、搜索等操作。Redis中提供了这些功能。
命令 | 功能 |
---|---|
exists key | 检查给定 key 是否存在 |
type key | 返回key所储存的值的类型 |
del key | 删除 |
rename key newkey | 将key重命名为newkey |
renamenx key newkey | 仅当newkey不存在时进行重命名 |
move key db | 将key移动到数据库db中 |
randomkey | 从当前数据库中随机返回一个key |
keys parttern | 查找所有复合给定模式的key |
上面这些操作,exists, del
已经演示过了,下面演示其他命令,先创建两个键值对
set a "string"
lpush b "1" "2" "3"
然后查看二者的数据类型
127.0.0.1:6379> type a
string
127.0.0.1:6379> type b
list
使用randomkey,随机返回一个键
127.0.0.1:6379> randomkey
"b"
对b进行重命名,先用renamenx将b重命名为a,但由于a存在,所以操作失败;然后用rename,操作成功,a的类型也变成了list。
127.0.0.1:6379> renamenx b a
(integer) 0
127.0.0.1:6379> rename b a
OK
127.0.0.1:6379> type a
list
将a移动到第一个数据库,然后判断发现a果然不见了。
127.0.0.1:6379> move a 1
(integer) 1
127.0.0.1:6379> exists a
(integer) 0
名称匹配
通过keys
命令可以查找在形式上符合要求的键,其pattern语法类似于简化版的正则表达式
- ? 匹配任意单个字符
- * 匹配任意多个字符
- [] 匹配方括号中的任意字符
- [^] 匹配除了方括号中的其他字符
- [a-b] 匹配从a到b的所有字符,例如[0-9]匹配所有数字
示例如下
127.0.0.1:6379> set a123b "test"
OK
127.0.0.1:6379> keys a*b
1) "a123b"
127.0.0.1:6379> keys a?b
(empty list or set)
127.0.0.1:6379> keys a[0-9]b
(empty list or set)
127.0.0.1:6379> keys a[0-9]*b
1) "a123b"
127.0.0.1:6379> keys a[0-9][0-9][0-9]b
1) "a123b"
过期时间
为某个键设置过期时间,就是过了这段时间后,redis会自动删除这个键。以expire为例,其命令格式为
expire key time
秒 | 毫秒 | 备注 |
---|---|---|
expire | pexpire | 设置过期时间倒计时 |
expireat | pexpireat | 设置过期时间戳 |
ttl | pttl | 返回剩余的过期时间 |
最后通过persist key
,可移除key的过期时间,示例如下,第一行设置a的过期时间为15秒;第二行查询的时候只剩下9秒了;第三行移除了过期时间,最后一行再次查询,过期时间变为-1,表示永不过期。
127.0.0.1:6379> expire a 15
(integer) 1
127.0.0.1:6379> ttl a
(integer) 9
127.0.0.1:6379> persist a
(integer) 1
127.0.0.1:6379> ttl a
(integer) -1