6.redis的高级特性

1.查找键,模糊查询

以 s 开头的key

 keys s*

2.判断key是否存在

返回1表示存在

exists yyy

3.设置过期时间

expire name 60
ttl name

 (integer) 42  //返回时间,如果已经过期 ,则返回-2;如果数据永久不过期,则返回-1;如果正在过期,即返回剩余时间

persist name   //取消过期时间

4.选择数据库

select 2            //选择第三个逻辑库

keys *            //可以看到里面任何数据没有

6.redis的高级特性 数据库下标变了

 

6.redis的高级特性

根据业务分库

5.数据库移动

 选择第三号数据库 ,创建set name ,将数据移动到1号数据库

select 2
set name caolihua 
move name 0

6.随机

随机 randomkey 返回该库的 一个key,抽奖应用可以用到(所有ip)

 7.基本小命令

echo 打印

dbsize 查看数据库key 数量  

info :数据库信息

config get * :返回所有配置 ,上下行挨着的key ,value

flushdb :清空当前数据库

flushall :清空所有数据库

 8.安全特性

设置密码 

vim redis.conf

requirepass caolihua             //密码设置为caolihua

1)需要授权

6.redis的高级特性

2)或者从登陆上输入密码

./redis-cli -h 192.168.50.160 -p 6379 -a caolihua

 

8.redis 事务

 并非严格的事务,先不要用事务。

1) multi 开启事务 ,exec 提交事务

192.168.50.160:6379> set p1 111
OK
192.168.50.160:6379> set p2 222
OK
192.168.50.160:6379> set p3 333
OK
192.168.50.160:6379> keys * 
1) "p3"
2) "p2"
3) "p1"
192.168.50.160:6379> multi
OK
192.168.50.160:6379> set p4 444
QUEUED
192.168.50.160:6379> set p5 555
QUEUED
192.168.50.160:6379> exec
1) OK
2) OK
192.168.50.160:6379> keys *
1) "p3"
2) "p5"
3) "p2"
4) "p4"
5) "p1"

2)取消事务

192.168.50.160:6379> multi 
OK
192.168.50.160:6379> set p6 xxx
QUEUED
192.168.50.160:6379> set p7 xxx
QUEUED
192.168.50.160:6379> discard
OK
192.168.50.160:6379> keys *
1) "p3"
2) "p5"
3) "p2"
4) "p4"
5) "p1"

3)报错,事务未生效

name 无法自增,报错;age 可以自增,未回滚。

192.168.50.160:6379> set name caolihua
OK
192.168.50.160:6379> set age 18
OK
192.168.50.160:6379> multi
OK
192.168.50.160:6379> incr name 
QUEUED
192.168.50.160:6379> incr age
QUEUED
192.168.50.160:6379> exec
1) (error) ERR value is not an integer or out of range
2) (integer) 19

8.持久化特性

1)快照rdb方式,

save 300 10   // 300秒内,10个key 发生变化,则发起快照保存到磁盘;当到第9个时,断电,即丢失数据

2)aof 方式

设置redis.conf 配置文件

appendonly yes
appendfilename "appendonly.aof"
appendfsync always // 每一次数据操作,都记录一条日志到磁盘;采用这个

#appendfsync everysec    //每秒将所有日志操作 记录到磁盘
# appendfsync no

dir /home/caolh/redis-3.2.11/datas    //rdb文件和aof 文件都会放到这个目录下

 

keys * 查看 :所有数据都空了,即重启后rdb文件的数据不会自动写入redis缓存

info   //aof 生效

6.redis的高级特性

 

 9.发布、订阅模式 (取代zookeeper)

开启3个客户端,都是一个机器,为了测试

 6.redis的高级特性

1)开启订阅

192.168.50.160:6379> subscribe c1 c2
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "c1"
3) (integer) 1
1) "subscribe"
2) "c2"
3) (integer) 2

2)发消息

192.168.50.160:6379> publish c1 hello 
(integer) 1
192.168.50.160:6379> 
192.168.50.160:6379> publish c2 world
(integer) 1
192.168.50.160:6379> 

3)收到消息

192.168.50.160:6379> subscribe c1 c2
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "c1"
3) (integer) 1
1) "subscribe"
2) "c2"
3) (integer) 2

2) "c2"
3) "world"
1) "message"
2) "c1"
3) "hello"

少量数据可以,海量数据 ,无法取代消息队列 ,积压堆积 处理慢。

可以用来 取代zk 的机器的配置文件同步监听的功能。

这个发布、订阅不要乱用。