首页 > 代码库 > Redis高级应用
Redis高级应用
Redis高级实用特性分6部分:
1、安全性
设置客户端连接后进行任何其他操作时,需要使用密码
修改redis.conf配置文件,requirepass password指令就是用来设置密码的
修改完配置文件后要重启redis服务
重启后,发现在命令行执行操作时,会有以下提示。此时需要用auth password 来授权
127.0.0.1:6379> keys * (error) NOAUTH Authentication required. 127.0.0.1:6379> auth redis123 OK 127.0.0.1:6379> keys * (empty list or set)
如果不希望在命令行输入密码来完成授权,则可以在登录客户端时,输入密码
[root@localhost init.d]# /usr/local/redis/bin/redis-cli -a redis123 127.0.0.1:6379> keys * (empty list or set)
2、主从复制
Redis主从复制配置和使用非常简单。通过主从复制可以允许多个slave server拥有和master server相同的数据库副本
主从复制的工作原理:
1、slave与master建立连接后,发送sync同步命令
2、master会启动一个后台进程,将数据库快照保存到文件中,同时master主进程会开始收集新的写命令并缓存
3、后台完成保存后,将此文件发送给slave
4、slave将此文件保存到硬盘上
主从复制的特点:
a、Master可以拥有多个slave
b、多个slave可以连接同一个master外,还可以连接到其他slave(这个特性是为了防止master出现故障后,slave无法进行同步,如果slave还连接了其他slave,那么master挂掉后,这个slave就会变成master,接管服务)
c、主从复制不会阻塞master,在同步数据时,master可以继续处理client请求
d、提高系统的伸缩性
主从复制的配置:
在slava的配置文件中加入以下配置:
slaveof 192.168.1.1 6379 #指定master的ip和端口
masterauth PASSWORD # 这是master的密码
注意:主从配置的注意事项:
master、slave的配置文件中bind 127.0.0.1 这条配置改成eth0网卡的ip地址,否则redis的端口默认监听在127.0.0.1上。这样slave 到master的端口不通。
更改bind 的IP地址后,进入客户端时使用命令:
$redis_home/bin/redis-cli -h 172.16.206.140
即使用-h参数指定eth0网卡的IP地址,默认是127.0.0.1
3、事务处理
Redis对事务的处理目前还比较简单,Redis只能保证一个client发起的事物中的命令可以连续的执行,而中间不会插入其他client的命令。当一个client在一个连接中发出multi命令时,这个连接会进入一个事务上下文,该连接后续的命令不会立即执行,而是先放到一个队列中,当执行exec命令时,redis会顺序的执行队列中的命令
例如:
172.16.206.142:6379> set age 27 OK 172.16.206.142:6379> 172.16.206.142:6379> get age "27" 172.16.206.142:6379> multi OK 172.16.206.142:6379> set age 37 QUEUED 172.16.206.142:6379> set age 47QUEUED 172.16.206.142:6379> set age 47 QUEUED 172.16.206.142:6379> exec 1) OK 2) OK 3) OK 172.16.206.142:6379> get age "47"
discard:取消一个事务
172.16.206.142:6379> get age "47" 172.16.206.142:6379> multi OK 172.16.206.142:6379> set age 100 QUEUED 172.16.206.142:6379> set age 200 QUEUED 172.16.206.142:6379> discard OK 172.16.206.142:6379> get age "47"
4、持久化机制
5、发布订阅消息
6、虚拟内存的使用
本文出自 “zengestudy” 博客,请务必保留此出处http://zengestudy.blog.51cto.com/1702365/1854178
Redis高级应用