向库中插入如下的key
127.0.0.1:6379> set username qiyuan
OK
127.0.0.1:6379> hset user name qiyuan password admin sex 1
(integer) 3
127.0.0.1:6379> rpush mylist a b c d e
(integer) 5
127.0.0.1:6379> sadd myset a b c d e a c
(integer) 5
127.0.0.1:6379> zadd myzset 1 Kangkang 2 Tom 5 Jane 4 Mike 3 Mairy
(integer) 5
keys 查看当前库中所有的key
127.0.0.1:6379> keys *
1) "mylist"
2) "username"
3) "user"
4) "myset"
5) "myzset"
127.0.0.1:6379> keys u*
1) "username"
2) "user"
type 查看当前key是什么类型
返回 key 的数据类型,数据类型有:
- none (key不存在)
- string (字符串)
- list (列表)
- set (集合)
- zset (有序集)
- hash (哈希表)
127.0.0.1:6379> type myset
set
127.0.0.1:6379> type mylist
list
127.0.0.1:6379> type username
string
127.0.0.1:6379> type user
hash
127.0.0.1:6379> type myzset
zset
127.0.0.1:6379> type enheng
none
del 删除一个key
127.0.0.1:6379> del enheng
(integer) 0
127.0.0.1:6379> del username
(integer) 1
exists 检测key是否存在
可以跟多个key,返回存在key的个数
127.0.0.1:6379> exists username
(integer) 0
127.0.0.1:6379> exists mylist
(integer) 1
127.0.0.1:6379> exists mylist username
(integer) 1
127.0.0.1:6379> exists mylist username myset
(integer) 2
rename 重命名key
注意,如果newname在库中存在,会把已存在的覆盖掉
127.0.0.1:6379> rename mylist newlist
OK
127.0.0.1:6379> keys *
1) "newlist"
2) "user"
3) "myset"
4) "myzset"
127.0.0.1:6379> rename newlist user #比如:将其重命名为user,user已经存在了,是一个string
OK
127.0.0.1:6379> keys * #检测:只剩下三个
1) "user"
2) "myset"
3) "myzset"
127.0.0.1:6379> get user #通过string的get命令拿user,会报错,类型错误!!
(error) WRONGTYPE Operation against a key holding the wrong kind of value
127.0.0.1:6379> lrange user 0 -1 #再次检测user类型,已经是list类型,说明被覆盖!
1) "a"
2) "b"
3) "c"
4) "d"
5) "e"
renamenx 重命名key,仅当newkey不存在的时候,才改名为newkey,不会像rename命令那样覆盖
127.0.0.1:6379> keys *
1) "mylist"
2) "myset"
3) "myzset"
127.0.0.1:6379> renamenx mylist newlist
(integer) 1
127.0.0.1:6379> keys *
1) "newlist"
2) "myset"
3) "myzset"
127.0.0.1:6379> renamenx myset newlist
(integer) 0 #没有成功!没有覆盖!
127.0.0.1:6379> keys *
1) "newlist"
2) "myset"
3) "myzset"
randomkey 在当前库中随机返回一个key
127.0.0.1:6379> randomkey
"myset"
127.0.0.1:6379> randomkey
"myzset"
127.0.0.1:6379> randomkey
"newlist"
127.0.0.1:6379> randomkey
"myset"
127.0.0.1:6379> randomkey
"newlist"
dump 序列化给定key,并返回序列化的值
127.0.0.1:6379> set username qiyuan
OK
127.0.0.1:6379> dump username
"\x00\x06qiyuan\t\x00\xcb\x1c\x15\xc7\xb9\x1e\x8b\x18"
127.0.0.1:6379> get username
"qiyuan"
127.0.0.1:6379> dump newlist
"\x0e\x01\x1a\x1a\x00\x00\x00\x16\x00\x00\x00\x05\x00\x00\x01a\x03\x01b\x03\x01c\x03\x01d\x03\x01e\xff\t\x00\xe8\xed\\\xa1\xb6\x12\xfc\x86"
127.0.0.1:6379> lrange newlist 0 -1
1) "a"
2) "b"
3) "c"
4) "d"
5) "e"
expire 为一个key设置过期的时间,单位是秒
127.0.0.1:6379> keys *
1) "newlist"
2) "username"
3) "myset"
4) "myzset"
127.0.0.1:6379> expire username 60 #为username设置一个60秒的过期时间
(integer) 1
127.0.0.1:6379> ttl username #ttl命令:显示key的过期时间
(integer) 56
127.0.0.1:6379> ttl username
(integer) 54
127.0.0.1:6379> ttl username
(integer) 50
127.0.0.1:6379> ttl username
(integer) 2
127.0.0.1:6379> ttl username #key过期后就被删除了,返回-2
(integer) -2
127.0.0.1:6379> keys *
1) "newlist"
2) "myset"
3) "myzset"
127.0.0.1:6379> set username qiyuan
OK
127.0.0.1:6379> expire username 100
(integer) 1
127.0.0.1:6379> ttl username
(integer) 96
127.0.0.1:6379> set username qiyuan2 #当还在过期时间内,重新给它设置新的值,过期时间会消除
OK
127.0.0.1:6379> ttl username #ttl命名返回-1表示这个key没有设置过期时间
(integer) -1
##################################################################################
#同时,我们可以在设置值的时候就给她它设置一个过期时间
127.0.0.1:6379> set username qiyuan ex 60
OK
127.0.0.1:6379> ttl username
(integer) 55
pexpire 设置过期时间,单位毫秒
127.0.0.1:6379> pexpire username 10000
(integer) 1
127.0.0.1:6379> ttl username
(integer) 7
127.0.0.1:6379> ttl username
(integer) 5
127.0.0.1:6379> ttl username
(integer) 3
127.0.0.1:6379> ttl username
(integer) -2
expireat 类似expire,但是设置的时间参数是UNIX秒时间戳
127.0.0.1:6379> set username qiyuan
OK
127.0.0.1:6379> expireat username 9999840000
(integer) 1
127.0.0.1:6379> ttl username
(integer) 8355970372
127.0.0.1:6379> ttl username
(integer) 8355970368
127.0.0.1:6379> ttl username
(integer) 8355970365
pexpireat 设置过期时间,单位是UNIX毫秒数时间戳
127.0.0.1:6379> pexpireat username 9999555555005
(integer) 1
127.0.0.1:6379> ttl username
(integer) 8355685029
127.0.0.1:6379> ttl username
(integer) 8355685025
persist 消除过期时间
127.0.0.1:6379> set username qiyuan
OK
127.0.0.1:6379> expire username 100
(integer) 1
127.0.0.1:6379> ttl username
(integer) 97
127.0.0.1:6379> persist username
(integer) 1
127.0.0.1:6379> ttl username
(integer) -1 #返回-1,表示没有过期时间,永久存在
select 切换数据库,默认是0
127.0.0.1:6379> select 1
OK
127.0.0.1:6379[1]> select 2
OK
127.0.0.1:6379[2]> select 0
OK
127.0.0.1:6379> #当是0数据库时,不显示[0]
move 移动key到另外一个数据库
127.0.0.1:6379> ttl username
(integer) -1
127.0.0.1:6379> expire username 1000
(integer) 1
127.0.0.1:6379> ttl username
(integer) 997
127.0.0.1:6379> move username 2
(integer) 1
127.0.0.1:6379> ttl username
(integer) -2
127.0.0.1:6379> select 2
OK
127.0.0.1:6379[2]> keys *
1) "username"
127.0.0.1:6379[2]> ttl username #移过来之后的过期时间还存在!!
(integer) 959