大数据运维(62)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 foobared requirepass 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 123456 OK 127.0.0.1:6379> set name xiaoming OK 127.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> multi OK 127.0.0.1:6379> set age 19 QUEUED 127.0.0.1:6379> set age 20 QUEUED 127.0.0.1:6379> exec 1) OK 2) OK 127.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> multi OK 127.0.0.1:6379> set age 17 QUEUED 127.0.0.1:6379> discard OK 127.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 always appendfsync 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 tv1 Reading messages... (press Ctrl-C to quit) 1) "subscribe" 2) "tv1" 3) (integer) 1 1) "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对象换入的工作线程数量

 

配置好后重启

上一篇:Android百度地图sdk状态码总是返回62


下一篇:82同路径(62)