redis 高级实用教程

一、设置redis外网访问

更改redis.conf 文件

# vim redis.conf
bind 127.0.0.1      # 注释掉改行
protected-mode yes # 更改模式为no(redis3.2后)

二、设置密码验证

更改redis.conf配置文件

requirepass redhat

或者通过set设置

127.0.0.1:6284> config get requirepass      # 查看密码设置
1) "requirepass"
2) ""
127.0.0.1:6284> config set requirepass "111"   # 设置密码
OK
127.0.0.1:6284> config get requirepass       # 已设置认证,无法继续访问
(error) NOAUTH Authentication required.
127.0.0.1:6284> auth "111"                  # 键入密码
OK
127.0.0.1:6284> config get requirepass
1) "requirepass"
2) "111"

三、redis主从复制

redis 主从复制特点

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

redis 主从复制过程

当配置好slave后,slave与master建立连接,然后发送sync命令。无论是第一次连接还是重新连接,master都会启动一个后台进程,将数据库快照保存到文件中,同时master主进程会开始收集新的写命令并缓存。后台进程完成写文件后,master就发送文件给slave,slave将文件保存到硬盘上,再加载到内存中,接着master就会把缓存的命令转发给slave,后续master将收到的写命令发送给slave。如果master同时收到多个slave发来的同步连接命令,master只会启动一个进程来写数据库镜像,然后发送给所有的slave。
redis主从复制配置

安装多个实例

# cp redis.conf redis_slave.
# vim redis_slave.conf更改以下内容:
pidfile /var/run/redis_slave.pid    
port 6378
logfile "/wh_k/redis-2.8.17/src/redis_slave.log"
dbfilename dump_slave.rdb

修改配置文件redis_slave.conf (主从配置)

# vim redis_slave.conf添加以下内容:
# slaveof <masterip> <masterport>
slaveof 192.168.61.128 6379
masterauth redhat     # master主服务器有密码,需添加此配置,“redhat”为主服务器密码

启动slave连接数据库

# ./redis-server ../redis_slave.conf
# ./redis-cli -h 192.168.61.128 -p 6378

测试

mater端:127.0.0.1:6379> select 2
OK
127.0.0.1:6379[2]> keys *
(empty list or set)slave端:192.168.61.128:6378> select 2
OK
192.168.61.128:6378[2]> keys *
(empty list or set)master端插入数据:127.0.0.1:6379[2]> set name zsh
OK
127.0.0.1:6379[2]> set age 20
OK
127.0.0.1:6379[2]> mget name age
1) "zsh"
2) "20"slave端测试:192.168.61.128:6378[2]> keys *
1) "name"
2) "age"
192.168.61.128:6378[2]> mget name age
1) "zsh"
2) "20"

查看角色(主、备)

192.168.61.128:6378[2]> info
# Replication
role:slave

四、redis事务

简单事务控制

127.0.0.1:6379[1]> set age 10
OK
127.0.0.1:6379[1]> multi    # 标记事务块开始
OK
127.0.0.1:6379[1]> set age 15
QUEUED
127.0.0.1:6379[1]> set age 20
QUEUED
127.0.0.1:6379[1]> exec  # 调用
1) OK
2) OK
127.0.0.1:6379[1]> get age
"20"

取消事务discard(事务回滚)

127.0.0.1:6379[1]> get age
"20"
127.0.0.1:6379[1]> multi
OK
127.0.0.1:6379[1]> set age 15
QUEUED
127.0.0.1:6379[1]> set age 10
QUEUED
127.0.0.1:6379[1]> discard
OK
127.0.0.1:6379[1]> get age
"20"

监视命令watch

watch 命令会监视给定的key,当exec 时候如果监视的key 从调用watch 后发生过变化,则整个事务会失败。也可以调用watch 多次监视多个key.这 样就可以对指定的key 加乐观锁了。注意watch 的key 是对整个连接有效的,事务也一样。如果连接断开,监视和事务都会被自动清除。当然了exec,discard,unwatch 命令都会清除连接中的所有监视。redis事务可以理解为一个打包的批量执行脚本,但批量指令并非原子化的操作,中间某条指令的失败不会导致前面已做指令的回滚,也不会造成后续的指令不做。127.0.0.1:6379[1]> get age
"20"
127.0.0.1:6379[1]> set name zsh
OK
127.0.0.1:6379[1]> 
127.0.0.1:6379[1]> watch age
OK
127.0.0.1:6379[1]> multi
OK
127.0.0.1:6379[1]> incr age
QUEUED
127.0.0.1:6379[1]> incr name
QUEUED
127.0.0.1:6379[1]> exec
1) (integer) 21
2) (error) ERR value is not an integer or out of range
127.0.0.1:6379[1]> get age
"21"                                     # age已发生变化
127.0.0.1:6379[1]> get name
"zsh"    # name未变化

五、发布和订阅消息

Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息,客户端可以订阅任意数量的频道。有新消息通过PUBLISH 命令发送给频道 channel1 时, 这个消息就会被发送给订阅它的另几个客户端
打开客户端1订阅消息:127.0.0.1:6379> SUBSCRIBE Wechat
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "Wechat"
3) (integer) 1打开客户端2发布消息:127.0.0.1:6379> PUBLISH Wechat "Hello world !"
(integer) 1
127.0.0.1:6379> PUBLISH Wechat "Beautifull"
(integer) 1打开客户端1查看消息:127.0.0.1:6379> SUBSCRIBE Wechat
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "Wechat"
3) (integer) 1
1) "message"
2) "Wechat"
3) "Hello world !"
1) "message"
2) "Wechat"
3) "Beautifull"

六、redis 数据备份与恢复

创建备份save

该命令将在 redis 安装目录中创建dump.rdb文件(默认src下)127.0.0.1:6379> SAVE 
OK

恢复备份

将dump.rdb移至安装目录下启动服务即可。

后台备份bgsave

127.0.0.1:6379> bgsave
Background saving started

7、性能测试
redis 性能测试是通过同时执行多个命令实现的。

[root@Centos6 src]# ./redis-benchmark -n 10000 -q
PING_INLINE: 50505.05 requests per second
PING_BULK: 48309.18 requests per second
SET: 58823.53 requests per second
GET: 60975.61 requests per second
INCR: 60606.06 requests per second
LPUSH: 61349.69 requests per second
LPOP: 59880.24 requests per second
SADD: 61728.39 requests per second
SPOP: 59880.24 requests per second
LPUSH (needed to benchmark LRANGE): 64516.13 requests per second
LRANGE_100 (first 100 elements): 27777.78 requests per second
LRANGE_300 (first 300 elements): 11737.09 requests per second
LRANGE_500 (first 450 elements): 9115.77 requests per second
LRANGE_600 (first 600 elements): 6702.41 requests per second
MSET (10 keys): 39840.64 requests per second
为提升性能,可以采用管道技术:管道技术可以在服务端未响应时,客户端可以继续向服务端发送请求,并最终一次性读取所有服务端的响应。

了解更多关注我哟!!!

扫一扫进入我的公众号。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/565451.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LaTex实战笔记 4-插入 Python 程序代码块

LaTex插入 Python 程序代码块1. 需求描述和解决方案2. minted 包的安装与配置2.1 安装 Python 第三方库 Pygments2.2 下载和安装 minted 宏包2.3 配置 LaTeX 编译环境3. minted 包的使用3.1 基本使用3.2 扩展使用3.2.1 \mint 命令行3.2.2 \mintinline 行内使用3.2.3 \inputmint…

Redis 安装与配置

Redis 安装与配置 Window 下安装 下载地址&#xff1a;https://github.com/MSOpenTech/redis/releases。 这里我们下载 Redis-x64-xxx.zip 解压到指定目录&#xff1a;  打开命令行&#xff08;cmd&#xff09;跳转至解压路径,并运行安装命令&#xff0c;结果如图 C:\U…

智能家居(2)智能体验与智能交互

1. 智能体验的分析与讨论 随着信息和网络技术的发展&#xff0c;可以网络连接的电子电器产品越来越丰富&#xff0c;智能家居、智慧园区、智能汽车等智能控制系统和产品应用越来越广泛。 智能交互终端是智能控制系统的人机交互接口&#xff0c;既是实现智能功能的重要载体&am…

netbeans java9_Java 开发新选择?Apache NetBeans IDE 9.0 备受好评

Apache NetBeans 9.0 目前已发布 Beta 版本&#xff0c;离正式版本越来越近。9.0 版本的主要目标囊括 Oracle 捐赠的大量代码&#xff0c;以及提供 Java 9 和 10 支持。Apache NetBeans 近期在社区上发起了一项满意度调查&#xff0c;用于验收用户如何对 9.0 版本的看法&#x…

LaTex实战笔记 1-快速入门

LaTex插入 Python 程序代码块1. 为什么用 LaTeX&#xff1f;2. LaTeX 的安装与配置2.1 安装 TeXLive2.2 选择 LaTeX 编辑器3. LaTeX 的初次使用3.1 最短的 LaTeX 示例3.2 从模板创建文档3.3 编译生成 PDF 文件4. 基于模板编辑文档4.1 tex 模板的基本结构4.2 基于模板编辑排版5.…

java fx 皮肤_JavaFX 皮肤功能

作为RIA技术之一&#xff0c;为了让应用程序的界面看起来更加的漂亮或者更有个性&#xff0c;皮肤功能自然是必不可少的。在JavaFX中&#xff0c;可以使用CSS样式表来进行皮肤的更换。不过JavaFX中的CSS是基于W3C CSS version 2.1&#xff0c;但又不完全相同。JavaFX中的换肤有…

LaTex实战笔记 2-文档层次与结构

LaTeX 支持结构化文档的编写。 什么是结构化文档&#xff1f;会议论文、期刊论文、学位论文&#xff0c;这类有统一结构、统一版式的文档&#xff0c;是典型的结构化文档。而报刊文章的结构则因人而异&#xff0c;因文而异&#xff0c;是典型的非结构化文档。 1. 结构化文档的…

java爬取小说

使用Java爬取网站&#xff1a;http://www.shicimingju.com的小说内容 代码详解 1.在本地创建存储位置 2.编写正则表达式 3.循环获取内容 4.把内容存入文件夹中 5.判断成功或失败 效果演示 代码展示 package text;import java.io.BufferedReader;import java.io.BufferedWri…

智能家居(3)智能交互的竞品分析

智能家居系统与产品的交互方式&#xff0c;早已从物理按键、遥控操作发展为以触摸面板手机APP作为主要的交互方式&#xff0c;并已经实现了语音交互、生物识别等新技术的导入&#xff0c;未来可能会流行基于视觉的交互方式、基于机器学习的无感交互方式。融合这些交互方式的多模…

java爬取单张图片

我们经常需要在网页上获取一些图片&#xff0c;有的图片我们是可以直接下载使用&#xff0c;有的图片需要我们登陆账号甚至付费下载&#xff0c;所以在此我写了一个使用Java爬取任意网页单张图片的爬虫。 代码解析 1.图片的网络位置 2.进行访问和下载 3.建立本地存储位置 效果…

LaTex实战笔记 3-宏包与控制命令

1. LaTeX 命令的基本架构 LaTex 排版系统对于格式控制、公式编辑比 Word 更加灵活、准确。 Tex 环境中&#xff0c;字符、图片等各种文档内容都装在不同的盒子&#xff08;box&#xff09;容器内。这些盒子根据 Tex/Latex 的默认规则和控制命令组合为更大的盒子。字符组合为单…

【OpenCV 例程200篇】201. 图像的颜色空间转换

OpenCV 例程200篇 总目录 201. 图像的颜色空间转换 202. 查表快速替换&#xff08;cv.LUT&#xff09; 203. 伪彩色图像处理 204. 图像的色彩风格滤镜 205. 调节色彩平衡/饱和度/明度 文章目录【youcans 的 OpenCV 例程200篇】201. 图像的颜色空间转换图像的色彩空间基础图像的…

CSDN 搜索工具使用体验与对比分析

搜索工具是 C 站的核心产品&#xff0c;也是广大计算机学习读者的最爱。基于 CSDN 的程序设计与基于 Baidu 的程序设计并肩&#xff0c;成为计算机学习者的最爱。 本文对几种常用的计算机行业相关搜索工具进行对比分析。 本次对比分析只针对各网站的 PC 端网页版。 文章目录0…

【OpenCV 例程200篇】202. 查表快速替换(cv.LUT)

OpenCV 例程200篇 总目录 201. 图像的颜色空间转换 202. 查表快速替换&#xff08;cv.LUT&#xff09; 203. 伪彩色图像处理 204. 图像的色彩风格滤镜 205. 调节色彩平衡/饱和度/明度 文章目录【youcans 的 OpenCV 例程200篇】202. 查表快速替换&#xff08;cv.LUT&#xff09;…

LaTex实战笔记 4-字体格式

LaTeX 中的字体有 5 种属性&#xff1a; 字体编码&#xff1a;正文字体编码&#xff0c;数学字体编码字体族&#xff1a;罗马字体&#xff0c;无衬线字体&#xff0c;打字机字体&#xff08;等宽字体&#xff09;等字体系列&#xff1a;粗细&#xff0c;宽度字体形状&#xff…

PHP在哪里执行_php文件放在哪运行

下载一个WampServer (集成环境)安装后&#xff0c;把要运行的放到安装目录下的www(我安装在D盘&#xff1a;D:\wamp\wamp\www)&#xff0c;然后本机访问localhost/text.php(text.php是你要运行的php文件)。WampServer(推荐学习&#xff1a;PHP编程从入门到精通)WampServer是一款…

LaTex实战笔记 5-段落格式

2.1 换行和分段 通常 LATEX 会自动换行&#xff0c;也可以用\\ 或\newline 命令来强制换行。 开始一个段落&#xff0c;可以通过插入一个空行&#xff0c;也可以使用 \par 命令来强制分段。 连续两个换行符就是一个空行&#xff0c;可以将文字分段。但连续多个换行符&#xff…

【OpenCV 例程200篇】203. 伪彩色图像处理

OpenCV 例程200篇 总目录 201. 图像的颜色空间转换 202. 查表快速替换&#xff08;cv.LUT&#xff09; 203. 伪彩色图像处理 204. 图像的色彩风格滤镜 205. 调节色彩平衡/饱和度/明度 文章目录【youcans 的 OpenCV 例程200篇】203. 伪彩色图像处理什么是伪彩色图像&#xff1f;…

php post 丢失,php post大量数据时发现数据丢失问题解决方法,post数据丢失_PHP教程...

php post大量数据时发现数据丢失问题解决方法&#xff0c;post数据丢失解决办法&#xff1a;在php.ini中将max_input_vars调大改为5000就可以了原因追查&#xff1a;from的enctype”multipart/form-data”php版本5.6.6问题&#xff1a;部分POST数据接收不到追源代码发现是php中…

Jquery鼠标点击出现文字

点击鼠标左键出现文字效果。 原理解说 1.首先确定你是不是点的鼠标左键&#xff1b; 2.文字效果要出现在你鼠标点击的地方&#xff1b; 3.点击后文字出现一个由下往上的显示效果&#xff1b; 4.点击完成后固定时间内还得消失 效果演示 代码演示 <!DOCTYPE html> <h…