非关系数据库之redis入门到实战(1)Redis高级应用
1.安全性
设置密码:
vi /alidata/server/redis-3.2.1/redis.conf
|
1
|
[root@iZ28c6xv2w0Z redis-3.2.1]# vi /alidata/server/redis-3.2.1/redis.conf
|
找到:requirepass
|
1
2
|
# requirepass foobaredrequirepass 123456 |
重新启动数据库:
|
1
2
|
[root@iZ28c6xv2w0Z redis-3.2.1]# pkill redis-server
[root@iZ28c6xv2w0Z src]# ./redis-server /alidata/server/redis-3.2.1/redis.conf
|
进入客户端并执行命令,提示没有权限:
|
1
2
3
|
[root@iZ28c6xv2w0Z src]# ./redis-cli
127.0.0.1:6379> keys *(error) NOAUTH Authentication required. |
输入密码:
aoth 123456
|
1
2
3
4
5
6
|
127.0.0.1:6379> auth 123456OK127.0.0.1:6379> set name xiaoming
OK127.0.0.1:6379> keys *1) "name"
|
登录时即输入密码:
./redis-cli -a 123456
添加-a输入密码
|
1
2
3
|
[root@iZ28c6xv2w0Z src]# ./redis-cli -a 123456
127.0.0.1:6379> keys *1) "name"
|
2.主从复制
3.事务处理
开启事务:
multi
其他命令..
执行:
exec
|
1
2
3
4
5
6
7
8
9
10
11
|
127.0.0.1:6379> multiOK127.0.0.1:6379> set age 19
QUEUED127.0.0.1:6379> set age 20
QUEUED127.0.0.1:6379> exec
1) OK2) OK127.0.0.1:6379> get age"20" |
取消事务(回滚):
discard
|
1
2
3
4
5
6
7
8
9
10
|
127.0.0.1:6379> get age"20"127.0.0.1:6379> multiOK127.0.0.1:6379> set age 17
QUEUED127.0.0.1:6379> discardOK127.0.0.1:6379> get age"20" |
乐观锁:
watch age 开启监视
unwatch 清除所有监视,断开连接也会清除所有监视
4.持久化机制
snapshotting方式(默认):
默认名为dump.rdb
|
1
2
3
|
save 900 1 #900秒中有一个键被修改保存一次
save 300 10 #300秒中有十个健被修改保存一次
save 60 10000 #60秒中有10000个健被修改保存一次
|
aof方式:
配置文件中:
|
1
|
[root@iZ28c6xv2w0Z src]# vi /alidata/server/redis-3.2.1/redis.conf
|
appendonly yes #启用aof持久化
appendfsync always #收到命令立即写入磁盘,最慢,但保证完全持久化
appendfsync everysec #每秒写入磁盘一次,性能与持久化折中
appendfsync no #完全依赖os,性能最好,持久化没保证
|
1
2
3
|
# appendfsync alwaysappendfsync everysec# appendfsync no |
配置完成后重启redis
在src下会有一个名为 appendonly.aof 文件
5.发布订阅消息
发布消息:
publish tv1 xiaoming
返回的值为监听人数。
|
1
2
|
127.0.0.1:6379> publish tv1 xiaoming(integer) 1 |
监听消息:
subscribe tv1 tv2
在客户端二收到的消息:
|
1
2
3
4
5
6
7
8
|
127.0.0.1:6379> subscribe tv1Reading messages... (press Ctrl-C to quit)1) "subscribe"
2) "tv1"
3) (integer) 11) "message"
2) "tv1"
3) "xiaoming"
|
6.虚拟内存的使用
虚拟内存配置:
|
1
|
[root@iZ28c6xv2w0Z src]# vi /alidata/server/redis-3.2.1/redis.conf
|
添加如下配置:
vm-enabled yes #开启vm功能
vm-swap-file /tmp/redis.swap #交换出来的value保存的文件路径
vm-max-memory 1000000 #redis使用的最大内存上限
vm-page-size 32 #每个页面的大小32字节
vm-pages 134217728 #最多使用多少页面
vm-max-threads 4 #用于执行value对象换入的工作线程数量
配置好后重启