Redis客户端连接以及持久化数据(三)

本文涉及的产品
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
简介: 0、Redis目录结构      1)Redis介绍及部署在CentOS7上(一)      2)Redis指令与数据结构(二)      3)Redis客户端连接以及持久化数据(三)      4)Redis高可用之主从复制实践(四)      5)Redis高可用之哨兵模式Sentinel配置与启动(五)      6)Redis高可用之集群配置(六) 一、介绍上篇文章我们讲解了Redis的结构与指令,其实很简单,我也没有过多的讲解,这次我们讲解一下Redis连接客户端以及持久化方案。

0、Redis目录结构


      1)Redis介绍及部署在CentOS7上(一)

      2)Redis指令与数据结构(二)

      3)Redis客户端连接以及持久化数据(三)

      4)Redis高可用之主从复制实践(四)

      5)Redis高可用之哨兵模式Sentinel配置与启动(五)

      6)Redis高可用之集群配置(六)

 

一、介绍


上篇文章我们讲解了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 6666
requirepass 123
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 6666
requirepass 123
logfile ./redislog_louie.log
dir ./
bind 192.168.250.132 127.0.0.1 #  0.0.0.0

save 20 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 6666
requirepass 123
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 交流群:787464275 欢迎加群交流
如果您认为这篇文章还不错或者有所收获,您可以点击右下角的【推荐】按钮精神支持,因为这种支持是我继续写作,分享的最大动力!

作者:LouieGuo
声明:原创博客请在转载时保留原文链接或者在文章开头加上本人博客地址,如发现错误,欢迎批评指正。凡是转载于本人的文章,不能设置打赏功能,如有特殊需求请与本人联系!

微信公众号:欢迎关注                                                 QQ技术交流群: 欢迎加群

                

LouieGuo
相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
14天前
|
缓存 NoSQL 关系型数据库
13- Redis和Mysql如何保证数据⼀致?
该内容讨论了保证Redis和MySQL数据一致性的几种策略。首先提到的两种方法存在不一致风险:先更新MySQL再更新Redis,或先删Redis再更新MySQL。第三种方案是通过MQ异步同步以达到最终一致性,适用于一致性要求较高的场景。项目中根据不同业务需求选择不同方案,如对一致性要求不高的情况不做处理,时效性数据设置过期时间,高一致性需求则使用MQ确保同步,最严格的情况可能涉及分布式事务(如Seata的TCC模式)。
40 6
|
14天前
|
NoSQL Redis
05- Redis的数据淘汰策略有哪些 ?
Redis 提供了 8 种数据淘汰策略:挥发性 LRU、LFU 和 TTL(针对有过期时间的数据),挥发性随机淘汰,以及全库的 LRU、LFU 随机淘汰,用于在内存不足时选择删除。另外,还有不淘汰策略(no-eviction),允许新写入操作报错而非删除数据。
182 1
|
6天前
|
存储 NoSQL Java
Redis奔溃了快看看有没开启持久化
Reis作为一个内存数据库,整个数据库状态都存储在内存里,如果在运行过程中发生崩溃,那整个数据库状态可就完全不见了,相当于整个服务器被初始化。Redis在这方面肯定有所作为,我们来看看它做了什么功夫~
120 0
Redis奔溃了快看看有没开启持久化
|
16天前
|
存储 NoSQL 算法
redis数据持久化
redis数据持久化
|
21天前
|
NoSQL 安全 网络安全
保护Redis:建立铁壁般的安全防线,守护你的数据财富
保护Redis:建立铁壁般的安全防线,守护你的数据财富
|
21天前
|
消息中间件 存储 NoSQL
Redis Stream: 实时消息处理的利器,让你的数据流畅又可靠!
Redis Stream: 实时消息处理的利器,让你的数据流畅又可靠!
|
1月前
|
JSON NoSQL Java
【Redis】2、Redis 的 Java 客户端(Jedis 和 SpringDataRedis)
【Redis】2、Redis 的 Java 客户端(Jedis 和 SpringDataRedis)
44 0
|
4月前
|
JSON NoSQL Java
⑩【Redis Java客户端】:Jedis、SpringDataRedis、StringRedisTemplate
⑩【Redis Java客户端】:Jedis、SpringDataRedis、StringRedisTemplate
30 0
|
4月前
|
JSON NoSQL Java
redis笔记 二 redis客户端Jedis使用(二)
redis笔记 二 redis客户端Jedis使用
37 0
|
4月前
|
设计模式 NoSQL Java
redis笔记 二 redis客户端Jedis使用(一)
redis笔记 二 redis客户端Jedis使用
51 0

热门文章

最新文章