Redis客户端连接以及持久化数据(三)
0、Redis目录结构
5)Redis高可用之哨兵模式Sentinel配置与启动(五)
一、介绍
上篇文章我们讲解了Redis的结构与指令,其实很简单,我也没有过多的讲解,这次我们讲解一下Redis连接客户端以及持久化方案。
1、上文中我们针对redis的数据操作都是在服务器中使用命令执行的,当然这个也是非常安全的处理方式,那么在开发的阶段为了方便我们可是使用可视化界面连接redis,
比如RedisDesktopManager 这个软件等,方便我们快速的操作数据,下面的介绍也是依据这个软件进行的。
2、 针对与Redis 大家肯定也知道,redis的数据是保存在内存的,但是一旦把redis关闭则数据就会丢失,为了防止数据丢失,那么我就需要数据持久化到硬盘上,在此提供了两种持久化方案:
第一种是 RDB 快照的形式,第二种是 AOF 类似日志追加的方式。
那么我就快速的带大家了解一下
二、Redis客户端连接
1、前提说明一下:此方案只允许测试的时候配置,其他情况禁止使用
2、我们进入Redis的文件夹中,新建一个redis配置文件,文件名为: redis.custom.conf,然后在里面如下内容:
配置中的bind 代表绑定 本服务器的IP,在生产环境中禁止使用 0.0.0.0 ,此IP代表服务器内所有的IP都可以被外网进行连接;在生产环境中我们推荐使用绑定具体的内网IP,如我的IP为:192.168.250.132
daemonize yes
port
requirepass
logfile ./redislog_louie.log
dir ./
bind 192.168.250.132 127.0.0.1 # 0.0.0.0
3、此处我的redis端口为6666,如果大家没有关闭防火墙,则需要在防火墙中开启端口通过,允许端口6666的通过。
配置完成后我们保存然后启动。
./src/redis-server redis.custom.conf
然后我们使用 可视化工具连接一下我们的redis,发现连接成功,那么我就可以直接进行增删改查的数据操作啦。

操作数据

redis客户端已说明完,下面就是最重要的redis持久化。
三、Redis持久化方案
1、redis持久化有两种方案,一种是RDB,一种是AOF
2、RDB数据持久化
1)说明:RDB是整体快照备份一样,就像我们系统进行镜像的备份这种快照处理,当然看到这个大家应该会有一个问题,这样备份效率相对比较慢,而且一次备份数据比较大,所以官方也不推荐使用此方案进行数据持久化,但我们还得结合实际情况使用,像
redis主从复制的原理底层数据就是通过RDB。
2)触发RDB的方式有两种:
save 同步保存
bgsave 异步保存
话不多说我们配置一下RDB
daemonize yes
port
requirepass
logfile ./redislog_louie.log
dir ./
bind 192.168.250.132 127.0.0.1 # 0.0.0.0 save 1 # 自动保存策略,20秒内有一个key发生变化就自动保存
dbfilename rdb_louie.rdb # rdb文件名
stop-writes-on-bgsave-error yes # 发生错误中断写入,建议开启
rdbcompression yes # 数据文件压缩,建议开启
rdbchecksum yes # 开启crc64错误校验,建议开启
保存,运行一下我们的redis,就可以看到我们产生的rdb 文件了。
3、AOF数据持久化(推荐方案)
说明:日志追加数据持久化,即在原先的数据基础上进行追加,而不是完全覆写,这样效率高。
注:如果RDB与AOF同时存在的情况下,redis默认优先使用AOF进行数据恢复。

AOF的配置如下:
daemonize yes
port
requirepass
logfile ./redislog_louie.log
dir ./
bind 192.168.250.132 127.0.0.1 # 0.0.0.0 appendonly yes # 开启aof
appendfilename aof_louie.aof # aof 日志文件名
appendfsync everysec # 每秒记录一次日志,建议everysec
no-appendfsync-on-rewrite yes # 重写过程中是否向日志文件写入,yes 代表rewrite过程中,不向aof文件中追加信息,rewrite结束后再写入,no 代表rewrite执行的同时,也向aof追加信息
auto-aof-rewrite-percentage 100 # 触发重写文件增长百分比 默认100%
auto-aof-rewrite-min-size 64mb # 触发重写最小aof文件尺寸
看到上面的配置,大家会有疑问,为什么会有 重写,主要是因为要压缩数据,产生的文件更小,防止同样的相同命令占用空间,比如如下:用最简短的命令来操作数据

重写说明

至此,数据持久化已经都介绍完后
四、总结
redis的持久化方案建议采用AOF,高效便捷。下一篇文章我们就要进行redis高可用的介绍。
如果针对上面有任何问题,欢迎留言咨询。
asp.net core 交流群: 欢迎加群交流
如果您认为这篇文章还不错或者有所收获,您可以点击右下角的【推荐】按钮精神支持,因为这种支持是我继续写作,分享的最大动力!
微信公众号:欢迎关注 QQ技术交流群: 欢迎加群

Redis客户端连接以及持久化数据(三)的更多相关文章
- 使用redis客户端连接windows和linux下的redis并解决无法连接redis的问题
搭建环境:linux是centos7.4(请注意centos7以下版本的防火墙跟centos7以上的不同,使用redis客户端连接redis时会有区别,建议使用centos7以上版本) 一.下载red ...
- C#两大知名Redis客户端连接哨兵集群的姿势
前言 前面利用<Docker-Compose搭建Redis高可用哨兵集群>, 我们的思路是将Redis.Sentinel.Redis Client App链接到同一个网桥网络,这个网桥内的 ...
- Redis客户端连接池
使用场景 对于一些大对象,或者初始化过程较长的可复用的对象,我们如果每次都new对象出来,那么意味着会耗费大量的时间. 我们可以将这些对象缓存起来,当接口调用完毕后,不是销毁对象,当下次使用的时候,直 ...
- redis客户端连接异常
本文参考:http://mdba.cn/2015/04/02/redistwemproxy-%e5%ae%a2%e6%88%b7%e7%ab%af%e8%bf%9e%e6%8e%a5%e5%bc%82 ...
- Redis 客户端连接
Redis 通过监听一个 TCP 端口或者 Unix socket 的方式来接收来自客户端的连接,当一个连接建立后,Redis 内部会进行以下一些操作: 首先,客户端 socket 会被设置为非阻 ...
- Redis客户端连接
Redis接受上配置监听TCP端口和Unix套接字客户端的连接,如果启用.当一个新的客户端连接被接受,如有以下操作进行: 客户端套接字置于非阻塞状态,因为Redis的使用复用和非阻塞I/O操作. TC ...
- redis客户端连接到服务器的步骤
和大多数客户端连接到服务器一样,redis-cli连接到服务器也主要分为两个阶段,请求连接阶段和数据传送阶段.具体来讲redis-cli做的事情有: 1.以socket方式建立连接: 2,选择相应的数 ...
- redis客户端连接,最大连接数查询与设置
##redis客户端连接数 redis通过监听一个TCP端口或socket的方式接收来自客户端的连接, 当与客户端建立连接后,redis内部会进行如下操作:()客户端socket会被设置为非阻塞模式, ...
- 阿里云服务上面部署redis + 本地Redis客户端连接方法
本文结合自己在阿里云服务器上面搭建redis服务器,在本地redis的客户端Redis Desktop Manager连接成功的操作,将操作中的一些方法做了一些归纳和总结,希望可以帮到有需要的同学. ...
随机推荐
- Python数据分析初始(一)
基础库 pandas:python的一个数据分析库(pip install pandas) pandas 是基于 NumPy 的一个 python 数据分析包,主要目的是为了 数据分析 .它提供了大量 ...
- Scrapy爬虫框架教程(四)-- 抓取AJAX异步加载网页
欢迎关注博主主页,学习python视频资源,还有大量免费python经典文章 sklearn实战-乳腺癌细胞数据挖掘 https://study.163.com/course/introduction ...
- UnicodeDecodeError gbk codec can't decode byte in position illegal multibyte sequence
UnicodeDecodeError:'gbk' codec can't decode byte in position : illegal multibyte sequence 觉得有用的话,欢迎一 ...
- POJ 3537 multi-sg 暴力求SG
长为n的一列格子,轮流放同种棋子,率先使棋子连成3个者胜. 可以发现每次放一个棋子后,后手都不能放在[x-2,x+2]这个区间,那么相当于每次放棋将游戏分成了两个,不能放棋者败. 暴力求SG即可 /* ...
- AngularJS入门基础——$provide.decorator 实例讲解
<body ng-controller="OneController"> <script> var Foobar = function() { ...
- 数位dp(D - How Many Zeroes? LightOJ - 1140 )
题目链接:https://cn.vjudge.net/contest/278036#problem/D 题目大意:T组测试数据,每一次输入两个数,求的是在这个区间里面,有多少个0,比如说19203包括 ...
- perl6: Proc::Async (new)
# command with arguments my $proc = Proc::Async.new('whoami'); # subscribe to new output from out an ...
- 百度编辑器ueditor 字符限制
百度编辑器ueditor 字符限制 默认只能输入10000个字符 修改 ueditor.config.js // ,wordCount:true //是否开启字数统计 // ,maximumWords ...
- 【前端开发】关于闭包最通俗易懂的解释 for循环,定时器,闭包混合一块的那点事。
for循环,定时器,闭包混合一块的那点事. 1,对于一个基本的for循环,顺序输出变量值. for(var i = 1; i < 4; i++){ console.log(i);//结果不多说了 ...
- ftp配置文件
vsftpd配置文件采用“#”作为注释符,以“#”开头的行和空白行在解析时将被忽略,其余的行被视为配置命令行,每个配置命令的“=”两边不要留有空格.对于每个配置命令,在配置文件中还列出了相关的配置说明 ...