Redis高级配置

  • Redis实现发布-订阅处理
  • Redis可以进行认证授权
  • Redis实现数据库的相关性能监控

发布-订阅模式

Redis数据库的访问性能较高,所以可以利用Redis实现消息系统中的发布-订阅处理模式,即一个发送者进行消息发送,所有的订阅者实现消息的接收。
在这里插入图片描述
客户端A 开启订阅模式

subscribe subscribe-channel

客户端B开启发布模式

publish subscribe-channel www.baidu.cn

事务处理

Redis提供3个用于进行事务控制的命令

  • multi(开启事务支持)
  • discard(取消事务支持)
  • exec(提交事务)、

Redis事务支持问题?
开启事务后,里面进行的所有操作都是不做检查的。也就是说,所有的数据修改过程都是暂时将执行命令加入到队列中,在提交事务时才会一次性执行。

set hotkey test #设置一个数据
multi 			#开启事务
incr hotkey 	#自增长hotkey的内容:incr hotkey,字符串无法增长,此处有错误
set age 10		#设置一个正确的修改
exec 			#提交事务 追加执行队列时即便有操作错误,也不会做任何语法检查,但是在执行时会报错。如果现在某一个更新出现了错误,那么其余的更新不会受到影响

乐观锁

乐观锁是保证数据并发访问时能正确更新的一种技术手段。其操作是基于版本号进行的,即取得数据时会获取一个版本号,更新数据时,当前数据的版本号必须与取得数据的版本号相一致,方可正常执行。如果版本号不一致,则无法进行更新。

  1. 客户端A
set age 18 #设置一个数
watch age  #对数据进行监听
multi 	   #开启事务
  1. 客户端B
set age 10 #此时age的版本号发生变更
  1. 客户端A
set age 29 #此时数据不会立即被修改,而是追加到修改队列
exec #提交事务 此时返回的结果为(nil)(null),说明更新操作并没有执行。因为现在的数据版本编号和之前读取时的版本编号不同(Redis自动实现处理),所以无法进行正确的更新处理。

安全认证

数据库中保存的都是重要的资源信息,为了保证资源的安全,一定要为数据库提供安全认证机制。在Redis数据库里面并没有涉及复杂认证处理,开发者只需要配置一个认证密码即可实现安全访问。
修改redis配置文件redis.conf

vim /usr/local/redis/conf/redis.conf

requircpass test #设置密码
#bind 127.0.0.1 #开启远程访问

killall redis-server #结束当前Redis服务进程
/usr/local/redis/bin/redis-server /usr/local/redis/conf/redis.conf #重新启动Redis进程
/usr/local/redis/bin/redis-cli -h redis-single -p 6379 #通过客户端连接Redis 出现(error) NOAUTH Authentication required
auth test #认证

#若认证麻烦可以直接输入密码
/usr/local/redis/bin/redis-cli -h 127.0.0.1 -p 6379 -a mldnjava

Redis性能监控

下载redis-stat工具,下载地址为https://github.com/junegunn/redis-stat

apt-get -y install ruby ruby-dev rubygems #redis-stat工具是用Ruby编写的,所以想要使用它,必须下载Ruby的gems管理程序
apt-get -y install git #配置git工具包
cd /usr/local/src #进入到指定目录
git clone https://github.com/junegunn/redis-stat.git #进行git仓库克隆 
cd /usr/local/src/redis-stat/bin/ #进入redis-stat所在目录
gem install redis-stat #进行程序安装
/usr/local/redis/bin/redis-server /usr/local/redis/conf/redis.conf #Redis服务启动
/usr/local/src/redis-stat/bin/redis-stat 192.168.1.6:6379 -a test
/usr/local/redis/bin/redis-benchmark -h 127.0.0.1 -p 6379 -n 10000 -d 30 -c 200 #测试
#也可web端访问
/usr/local/src/redis-stat/bin/redis-stat 192.168.1.6:6379 -a test--server=10000 --daemon --verbose  #命令将在后台启动一个Web服务进程,并在10000端口上进行监听

浏览器输入:http://192.168.1.6:10000(注意是自己的IP地址)

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/sinat_27674731/article/details/114836311