天天看点

redis 通用键值操作

一、redis 数据结构

丰富的数据结构

hash、链表、集合、有序集合等

1.通用键值操作

--字符串类型

set site www.zixue.it

set age 29

--如何获取当前所有的key 值

keys *

keys pattern 匹配模式;查询相应的key

redis 允许模糊查询

--常用三个通配符

1.* 通配任意多个字符字符

2.?通配任意单个字符

3.[] 通配[]括号内的某一个字符

--精确查询

keys site

---模糊查询

keys s*

keys sit*

keys sit[ey] ---不确定最后的字符是 e 还是 y --类似正则表达式

---中间字符记不清楚,并且只有一个字符

keys si?e --返回结果 site

--随机拿一个key

randomkey 返回随机key

--判断key 类型

type age

---判断一个key 是否存在

exist age ---返回结果是1 表示有;0表示没有

---删除key

del age

---修改key site 名字

rename site wangzhi

--renamenx 假如你修改的那个 key 的新名字,已经存在了呢?

--测试一下

del wangzhi

set site www.zixue.it

set search www.so.com

rename site search

----问题:现在 search 的key值是什么?

get search

www.zixue.it

--那么 之前 search 值就被覆盖了

---避免和已经存在的key 名字,发生冲突---一个新的命令,renamenx 等于 not exist

--先恢复原装

set site www.zixue.it

set search www.so.com

renamenx---如果存在,就修改失败;如果不存在,则修改成功

renamenx site sea --返回 1

get sea

www.zixue.it

renamenx sea search ---返回0

keys * ---发现确实修改失败

search

sea

get search

www.so.com

--移动 key

---单机 redis 默认 配置文件中 给开启了 databases 16 ---默认使用的是 0 号 database

keys *

search

sea

select 1 ---切换其他库

keys * ---返回空

--redis 默认16个库

分别从0-15

默认操作都是在 0号数据库操作

--某个key 不想删除,又不想在0号库,给她挪动到 1号库

move sea 1

keys *

search

---切库到1

select 1

keys *

sea

---key 生命周期,什么时候 key 失效???

--默认没有有效期:原因是 存储。不是缓存;但是可以手动设置有效期

expire

select 0

keys *

search

---查询 search 这个key 还可以 活多久?

--查询有效期

ttl search 返回 -1 ;-1 代表永久有效

--对于不存在的key 返回也是 -1 ;表示永久有效

ttl aaaa ---返回-1

ttl 查询key 返回的是一个 秒数

--默认对于不存在的key 或者已经过期的key 或者不过期的key 返回都是 -1;容易混淆

redis 2.8 中,对于 不存在的key 返回 -2

--设置 过期时间

expire key 周期值

ttl search --返回 -1

expire search 10 ---生命周期10秒

通过 get search ---10秒后发现不存在了,原因是:过期了

---重启 设置key

set site www.zixue.it ---默认永久有效

expire search 10

--查询生命周期

ttl search

---最后出现 -1

ttl查询和expire 都是按照秒为单位

----如果想毫秒做单位

使用 pttl pexpire

set search www.zixue.it

pexpier search 9000 设置9000 毫秒

pttl search --查询还有多少毫秒

---设置key 永久有效

set site www.zixue.it

expire site 10

ttl site

persist site --设置永久生效

ttl site ---返回值 -1

继续阅读