Redis基础知识补充及持久化、备份介绍(二)--技术流ken
Redis知识补充
在上一篇博客《Redis基础认识及常用命令使用(一)--技术流ken》中已经介绍了redis的一些基础知识,以及常用命令的使用,本篇博客将补充一些基础知识以及redis持久化和备份。
一. 启用redis的认证功能
第一步:登录redis并创建几个字符串,并退出
[root@ken ~]# redis-cli
127.0.0.1:> set name zhangsan
OK
127.0.0.1:> set addr jiangsu
OK
127.0.0.1:> set tel
OK
127.0.0.1:> MGET name addr tel
) "zhangsan"
) "jiangsu"
) ""
127.0.0.1:6379> exit
第二步:修改redis配置文件
大约在80行处启动protect-mode,并添加一行requirepass及密码
[root@ken ~]# vim /etc/redis.conf
...
# By default protected mode is enabled. You should disable it only if
# you are sure you want clients from other hosts to connect to Redis
# even if no authentication is configured, nor a specific set of interfaces
# are explicitly listed using the "bind" directive.
protected-mode yes
requirepass # Accept connections on the specified port, default is (IANA #).
# If port is specified Redis will not listen on a TCP socket.
...
第三步:重启redis
[root@ken ~]# systemctl restart redis
第四步:登录redis
可以发现登录时可以正常登录,但是已经无法查看里面的key了
[root@ken ~]# redis-cli
127.0.0.1:> get name
(error) NOAUTH Authentication required.
第五步:验证登录
使用auth加上配置文件中定义的密码即可进行验证,再次获取key就会成功了
127.0.0.1:> auth
OK
127.0.0.1:> get name
"zhangsan"
二.Redis的消息模式
订阅的基本格式:
SUBSCRIBE channel [channel ...] #订阅给定的一个或多个频道的信息
发送消息基本格式:
PUBLISH channel message #将信息 message 发送到指定的频道 channel
第一步:xshell开启两个窗口,并登陆redis

第二步:订阅频道
在一个窗口中执行如下命令,开启订阅
127.0.0.1:> SUBSCRIBE ken
Reading messages... (press Ctrl-C to quit)
) "subscribe"
) "ken"
) (integer)
第三步:频道发布内容
在另外一个窗口中在此频道发布内容
127.0.0.1:> PUBLISH ken "my name is ken"
(integer)
127.0.0.1:> PUBLISH ken "welcome to my homepage"
(integer)
第四步:在另外一个窗口进行查看
在订阅窗口查看。可以发现已经接收到订阅频道的信息了
127.0.0.1:> SUBSCRIBE ken
Reading messages... (press Ctrl-C to quit)
) "subscribe"
) "ken"
) (integer)
) "message"
) "ken"
) "my name is ken"
) "message"
) "ken"
) "welcome to my homepage"
三.Redis事务
redis和mysql一样也支持事务
MULTI
标记一个事务块的开始。
事务块内的多条命令会按照先后顺序被放进一个队列当中,最后由 EXEC 命令原子性(atomic)地执行
EXEC
执行所有事务块内的命令
第一步:启动事务
127.0.0.1:> MULTI
OK
第二步:输入命令、指令
127.0.0.1:> INCR tel
QUEUED
127.0.0.1:> INCR tel
QUEUED
127.0.0.1:> INCR tel
QUEUED
127.0.0.1:> INCR tel
QUEUED
127.0.0.1:6379> get tel
QUEUED
第三步:执行
127.0.0.1:> EXEC
) (integer)
) (integer)
) (integer)
) (integer)
) ""
完整演示如下
127.0.0.1:> MULTI
OK
127.0.0.1:> INCR tel
QUEUED
127.0.0.1:> INCR tel
QUEUED
127.0.0.1:> INCR tel
QUEUED
127.0.0.1:> INCR tel
QUEUED
127.0.0.1:> get tel
QUEUED
127.0.0.1:> EXEC
) (integer)
) (integer)
) (integer)
) (integer)
) ""
Redis持久化
RDB持久化
一.redis持久化会在磁盘上依赖两个文件
数据文件:rdb
日志文件:aof
二.redis实现持久化两种机制
RDB:周期的将内存中的数据备份到磁盘
AOF:借助于一个日志文件,这个文件会记录每次操作
RDB:基于快照的方式实现的,数据文件dump.rdb
三.实现RDB持久化的方式有两种
1. save,bgsave
save,同步的方式,持久化操作完成前,系统会被阻塞
bgsave,异步方式
2. 依赖提前做好的计划任务来实现
异步:子进程来完成持久化操作,持久化会将快照中的内容写入到一个临时文件中,当持久化完成了,那么就将这个临时文件改名成dump.rdb
四./etc/redis.conf配置文件中关于rdb持久化参数介绍
save 1 #900秒和至少1个键改变才会被保存
save 10 #300秒和至少10个键改变才会被保存
save 10000 #60秒和至少10000个键改变才会被保存
stop-writes-on-bgsave-error yes #错误发生时停止写入
rdbcompression yes #启用压缩
rdbchecksum yes #检验
dbfilename dump.rdb #rdb文件名
dir /var/lib/redis #rdb文件保存路径
AOF持久化
AOF:比rdb方式更可靠
如果想要启动aof持久化,只要启动appendonly yes即可
appendonly yes #是否启用aof持久化
auto-aof-rewrite-percentage #当aof文件的大小增张了指定比例的时候,执行一次重写操作
auto-aof-rewrite-min-size 64mb #指定aof文件做重写最小值
appendfilename "appendonly.aof" #aof持久化信息保存在哪个文件中(相当于mysql的二进制日志文件)
# appendfsync always #一旦执行了操作,会立刻将操作的语句记录到aof文件中
appendfsync everysec #每秒向aof文件进行一次写入操作
# appendfsync no #不主动向aof执行写入操作,由系统自行判断何时向磁盘执行写入操作
no-appendfsync-on-rewrite no
aof-load-truncated yes
Redis备份
备份持久化所生成的数据(rdb文件)
注意:生产环境中备份rdb文件需要关闭持久化
第一步:查看rdb文件是否存在
[root@ken ~]# ls /var/lib/redis/dump.rdb
第二步:查看redis中的key
[root@ken ~]# redis-cli
127.0.0.1:> keys *
) "name"
) "tel"
) "addr"
第三步:关闭rdb持久化
配置文件200行处,save后面为空,并注释掉202 203 204
# like in the following example:
#
save "" #save
#save
#save
第四步:重启redis
[root@ken ~]# systemctl restart redis
第五步:移动rdb文件至home下
[root@ken ~]# mv /var/lib/redis/dump.rdb /home
[root@ken ~]# ls /var/lib/redis/
第六步:重启redis
[root@ken ~]# systemctl restart redis
第七步:再次登录redis查看key
发现已经为空
[root@ken ~]# redis-cli
127.0.0.1:> keys *
(empty list or set)
第八步:复制home下的rdb文件至/var/lib/redis下
[root@ken ~]# cp /home/dump.rdb /var/lib/redis/
第九步:重启redis加载rdb文件
[root@ken ~]# systemctl restart redis
第十步:再次查看keys
发现所有的keys又回来了
[root@ken ~]# redis-cli
127.0.0.1:> keys *
) "name"
) "tel"
) "addr"
所以我们日常备份中只要备份这个文件即可
Redis基础知识补充及持久化、备份介绍(二)--技术流ken的更多相关文章
- Redis基础知识补充及持久化、备份介绍
Redis知识补充 在上一篇博客<Redis基础认识及常用命令使用(一)–技术流ken>中已经介绍了redis的一些基础知识,以及常用命令的使用,本篇博客将补充一些基础知识以及redis持 ...
- 【进阶之路】Redis基础知识两篇就满足(二)
导言 大家好,我是南橘,一名练习时常两年半的java练习生,这是我在博客园的第二篇文章,当然,都是要从别处搬运过来的,不过以后新的文章也会在博客园同步发布,希望大家能多多支持^_^ 这篇文章的出现,首 ...
- 老司机带你玩转面试(1):缓存中间件 Redis 基础知识以及数据持久化
引言 今天周末,我在家坐着掐指一算,马上又要到一年一度的金九银十招聘季了,国内今年上半年受到 YQ 冲击,金三银四泡汤了,这就直接导致很多今年毕业的同学会和明年毕业的同学一起参加今年下半年的秋招,这个 ...
- MySQL系列详解五: xtrabackup实现完全备份及增量备份详解-技术流ken
xtrabackup简介 xtrabackup是一个用来对mysql做备份的工具,它可以对innodb引擎的数据库做热备.xtrabackup备份和还原速度快,备份操作不会中断正在执行的事务,备份完成 ...
- Redis主从复制、多实例、高可用(三)--技术流ken
Redis主从复制 在开始实现redis的高可用之前,首先来学习一下如何实现redis的主从复制,毕竟高可用也会依赖主从复制的技术. Redis的主从复制,可以实现一个主节点master可以有多个从节 ...
- Redis Cluster集群架构实现(四)--技术流ken
Redis集群简介 通过前面三篇博客的介绍<Redis基础认识及常用命令使用(一)--技术流ken>,<Redis基础知识补充及持久化.备份介绍(二)--技术流ken>,< ...
- 【进阶之路】Redis基础知识两篇就满足(一)
导言 大家好,我是南橘,一名练习时常两年半的java练习生,这是我在博客园的第一篇文章,当然,都是要从别处搬运过来的,不过以后新的文章也会在博客园同步发布,希望大家能多多支持^_^ 这篇文章的出现,首 ...
- redis基础知识详解
一.redis基础知识 1.Redis是什么Redis是一个开源的key-value存储系统. 和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表 ...
- redis笔记之两种持久化备份方式(RDB & AOF)
Redis支持的两种持久化备份方式(RDB & AOF) redis支持两种持久化方式,一种是RDB,一种是AOF. RDB是根据指定的规则定时将内存中的数据备份到硬盘上,AOF是在每次执行命 ...
随机推荐
- aji unorder_map
- windows putty xming virt-manager
记一次windows环境使用linux下使用virt-manager软件的问题 环境:windows server 2008.ubuntu-server 软件:putty.virt-manager.x ...
- retrofit+rxjava封装
public class RetrofitHelper { private static OkHttpClient okHttpClient; private static ServiceAPI se ...
- 【repost】CSS3弹性布局
本文导读:在CSS 3中,CSS Flexible Box模块为一个非常重要的模块,该模块用于以非常灵活的方式实现页面布局处理.使用CSS Flexible Box模块中定义的弹性盒布局技术,可以根据 ...
- 2018年2月19日我的java学习(——)
在学完了类和对象的时候,开始对面向对象的思想有了一点认识,不过也不是完全的理解了. 就现在的学习状态来说,是非常的不错的,但是在学习的内容来说,我学的好像只是跟随这 站长的思路而已,也许是经验不足吧. ...
- 《python语言程序设计》_第二章笔记
#2.2_编写一个简单的程序 项目1: 设计:radius=20,求面积area? 程序: radius=20 #给变量radius复制area=radius*radius*3.14159 #编写ar ...
- 两个VirtualBox版本装的语言不一样?
两个VirtualBox版本装的语言不一样? 1.这个是我用的两个版本的VirtualBox. 2.用这个 VirtualBox-4.3.20-96997-Win.exe安装的时候,一直是英文. 3. ...
- Exp1 PC平台逆向破解----20164325 王晓蕊
前言:实验中用到的知识 JE:条件转移指令,如果相等则跳转: JNE:条件转移指令(等同于“Jump Not Equal”),如果不相等则跳转: JMP:无条件跳转指令.无条件跳转指令可转到内存中任何 ...
- linux网络编程-CRC校验
1.CRC校验是什么?为什么要使用CRC校验? CRC 即 循环冗余校验 是一种差错检测方法,可以做到对帧的无差错接受 因为现实的通信链路都不会是理想的,比特在传输的过程中有可能出现差错, 为了保证 ...
- Drools规则引擎入门指南(一)
最近项目需要增加风控系统,在经过一番调研以后决定使用Drools规则引擎.因为项目是基于SpringCloud的架构,所以此次学习使用了SpringBoot2.0版本结合Drools7.14.0.Fi ...