redis常用的key操作命令:
1.set key value (默认就是string类型) :给key赋值为value
2.get key :获取key的值
3.exists key :判断key是否存在
4.del key1 key2 ... :删除
5.type key :得到key的类型
6.keys pattern :返回符合pattern的keys 比如 keys * ,keys a*
7.rename oldkey newkey :重命名
8.dbsize:返回当前db的key数量
9.expire key seconds :seconds 为具体的秒数,设置key的过期时间
10.ttl key :返回key剩余生命,是time to live的首字母
11.select db-index: db-index默认可用值范围为 [0-15]
12.move key db-index:把key从当前库移到db-index库
13.flushdb:删除当前db的所有key
14.flushall:删除16个数据库的key
举例:
1.连接redis后设置几个值并查看自己设置的值,以及查看当前数据库含有的key的数量:
192.168.23.112:6379> set url http://www.roadjava.com OK 192.168.23.112:6379> get url "http://www.roadjava.com" 192.168.23.112:6379> set code 123456 OK 192.168.23.112:6379> get code "123456" 192.168.23.112:6379> set tip it is hard to live (error) ERR syntax error 192.168.23.112:6379> set tip "it is hard to live" OK 192.168.23.112:6379> get tip "it is hard to live" 192.168.23.112:6379> keys * 1) "tip" 2) "code" 3) "url"
总结:set key value :当value是一个字符串,不需要加双引号,当value有空格的时候,需要加上双引号,否则会报错。另外,redis里面没有数字类型,数字会被当做字符串处理。
2.如何判断某个key是否存在?
192.168.23.112:6379> exists url (integer) 1 192.168.23.112:6379> exists k1 (integer) 0
说明:存在返回1,不存在返回0
3.如何删除设置的key?
192.168.23.112:6379> del code (integer) 1
4.判断某个key的类型?
192.168.23.112:6379> type tip string 192.168.23.112:6379> type code none
说明:type用于判断某个key的类型,返回值有如下几种:
none (key不存在)
string (字符串)
list (列表)
set (集合)
zset (有序集)
hash (哈希表)
5.如何重命名一个key呢?
192.168.23.112:6379> keys * 1) "tip" 2) "code" 3) "url" 192.168.23.112:6379> rename code verification_code OK 192.168.23.112:6379> keys * 1) "tip" 2) "verification_code" 3) "url"
6.如何让一个key自动在一段时间之后失效?
192.168.23.112:6379> set headline 乐之者javaV1.3.0 OK 192.168.23.112:6379> get headline "\xe4\xb9\x90\xe4\xb9\x8b\xe8\x80\x85javaV1.3.0" 192.168.23.112:6379> expire headline 5 (integer) 1 192.168.23.112:6379> ttl headline (integer) 2 192.168.23.112:6379> get headline (nil) 192.168.23.112:6379> expire k2 20 (integer) 0 192.168.23.112:6379> ttl k2 (integer) -2 192.168.23.112:6379> ttl tip (integer) -1
说明:ttl针对不存在的key总是返回-2,对于没有设置过期时间的总是返回-1
7.如何判断当前redis客户端正在操作哪一个redis数据库?
可以看到除了当前操作的是0号数据库,否则在redis客户端都会有一个"[13]"来标识当前正在操作哪一个数据库。