Redis高级实用特性(安全性、主从复制、事务处理)

安全性

设置客户端连接后进行任何其他指定前需要使用的密码

警告: 因为redis速度相当快,所以在一台比较好的服务器下,一个外部的用户可以在一秒钟进行150K次的密码尝试,这意 味着你需要指定非常非常强大的密码来防止暴力破解

在配置文件中找到 # requirepass foobared
添加 requirepass redis

授权方法有两种:

客户端连接后 输入 auth redis
客户端连接时 输入 bin liudongyu$ /usr/local/redis/bin/redis-cli -a redis

主从复制

配置和使用都非常简单。通过主从复制可以允许多个
slave server拥有和master server相同的数据库副本

特点:

  1. master可以拥有多个slave
  2. 多个slave除了可以连接同一个master外,还可以连接到其他slave
  3. 主从复制不会阻塞master,在同步数据时,master可以继续处理client请求(主从同步时不影响master的数据读写)
  4. 提高系统的伸缩性

redis主从复制过程:

  1. slave与master建立连接,发送sync同步命令
  2. master会启动一个后台进程,将数据库快照保存到文件中,
    同时master主进程会开始收集新的写命令并缓存。
  3. 后台完成保存后,就将此文件发送给slave
  4. slave将此文件保存到硬盘上

配置主从服务器:
1. 配置slave服务器很简单,只需要在slave的配置文件中加入以下配置:redis.conf中:(要保证和主机是连通的 ping一下)
slaveof 192.168.1.1 6379#指定master的ip和端口
masterauth lamp# 这是主机的密码
2. 客户端命令中输入info可以查看该服务器的角色

role :slave
master_link_status:up

role: master
slave0: …
slave1:…

事务处理

  • multi
  • exec
    redis对事务的支持还比较简单(不是很成熟,e.g.下面例子中队列中有不能正常执行的命令,但redis没有做到回滚)
    在客户端中,输入multi,再输入其他的命令,其他的命令不会立即执行,而是放入一个队列中,当输入命令exec时,redis会执行队列中的所有命令
127.0.0.1:6379> get age
"50"
127.0.0.1:6379> set name liudy
OK
127.0.0.1:6379> multi 
OK
127.0.0.1:6379> incr age
QUEUED
127.0.0.1:6379> incr name
QUEUED
127.0.0.1:6379> exec
1) (integer) 51
2) (error) ERR value is not an integer or out of range
127.0.0.1:6379> get age
"20"
127.0.0.1:6379> multi
OK
127.0.0.1:6379> set age 10
QUEUED
127.0.0.1:6379> set age 50
QUEUED
127.0.0.1:6379> exec
1) OK
2) OK
127.0.0.1:6379> get age
"50"
  • discard
    取消一个事务(其实就是清空事务的命令队列并退出事务上下文,也就是我们常说的事务回滚)
127.0.0.1:6379> get age
"50"
127.0.0.1:6379> multi
OK
127.0.0.1:6379> set age 10
QUEUED
127.0.0.1:6379> set age 20
QUEUED
127.0.0.1:6379> discard
OK
127.0.0.1:6379> get age
"50"
  • 乐观锁的复杂事务控制(有点类似svn的版本管理)
    当开启事务前,对某个键进行监视,若在exec前,该键的值发生了改变,那么exec执行不成功
127.0.0.1:6379> get age
"30"
127.0.0.1:6379> watch age
OK
127.0.0.1:6379> multi
OK
127.0.0.1:6379> set age 20
QUEUED
127.0.0.1:6379> exec
(nil)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值