说完数据库类型(Key+Value的不同组合),现在说说 key 的操作,相当于mysql的字段,属性,redis对于key的操作很丰富。
1 删除
del key1 key2 ... Keyn
作用: 删除1个或多个键 返回值: 不存在的key忽略掉,返回真正删除的key的数量
2 重命名
-
重命名 (强制)
rename key newkey
作用: 给key赋一个新的key名 注:如果newkey已存在,则newkey的原值被覆盖
-
重命名 (没有key名就命名)
renamenx key newkey
作用: 把key改名为newkey 返回: 发生修改返回1,未发生修改返回0 注: nx--> not exists, 即, newkey不存在时,作改名动作
3 随机 key
格式:
randomkey
返回随机key
4 是否存在 key
格式:
exists key
判断key是否存在,返回1/0
5 判断 key 类型
格式:
type key
返回key存储的值的类型有string,link,set,order set, hash
6 查询key 有效时间
格式:
ttl key
作用: 查询key的生命周期 返回: 秒数
注:对于不存在的key或已过期的key/不过期的key,都返回-1 Redis2.8中,对于不存在的key,返回-2
7 设置key 有效期
格式:
expire key seconds #seconds:整型值
作用: 设置key的生命周期,以秒为单位
同理: pexpire key 毫秒数, 设置生命周期
pttl key, 以毫秒返回生命周期
指定key置为永久有效
persist key
8 数据库切换/转移数据
一个redis进程,打开了不止一个数据库, 默认打开16个数据库,从0到15编号, 如果想打开更多数据库,可以从配置文件修改 格式:
select Nmove key db127.0.0.1:6379> select 1OK127.0.0.1:6379[1]> keys *1) "name"2) "age"127.0.0.1:6379[1]> select 2OK127.0.0.1:6379[2]> keys *(empty list or set)127.0.0.1:6379[2]> set salary 7000OK127.0.0.1:6379[2]> move salary 1(integer) 1127.0.0.1:6379[2]> select 1OK127.0.0.1:6379[1]> keys *1) "salary"2) "name"3) "age"127.0.0.1:6379[1]> get salary"7000"
9 通配符 pattern
keys pattern 查询相应的key 在redis里,允许模糊查询key 有3个通配符 *, ? ,[] *: 通配任意多个字符 ?: 通配单个字符 []: 通配括号内的某1个字符
redis 127.0.0.1:6379> flushdbOKredis 127.0.0.1:6379> keys *(empty list or set)redis 127.0.0.1:6379> mset one 1 two 2 three 3 four 4OKredis 127.0.0.1:6379> keys o*1) "one"redis 127.0.0.1:6379> key *o(error) ERR unknown command 'key'redis 127.0.0.1:6379> keys *o1) "two"redis 127.0.0.1:6379> keys ???1) "one"2) "two"redis 127.0.0.1:6379> keys on?1) "one"redis 127.0.0.1:6379> set ons yesOKredis 127.0.0.1:6379> keys on[eaw]"one"