• 豫园商城升级改造:这些楼顶可见最好的风景--旅游频道 2019-05-14
  • 头条 —频道 春城壹网 七彩云南 一网天下 2019-05-14
  • 人为某种意识而奋斗是幸福的,获得成绩或成就更幸福。 2019-05-10
  • 【专题】省违反中央八项规定精神和“四风”问题线索举报平台 2019-05-09
  • 确定这是热身赛?吴前拼到大腿抽筋 拆绷带继续干 2019-05-09
  • 应对排放新规 大众德国工厂计划短暂停产 2019-04-26
  • 一师一团土地确权登记颁证工作全面展开 2019-04-26
  • 一语惊坛(5月31日):“我们不一样”,中国向世界许下一个承诺。 2019-04-22
  • 俄罗斯世界杯F组:球迷风采 2019-04-10
  • 5月份国民经济数据发布:中国经济持续稳中向好 2019-04-10
  • 贵州宣讲十九大:干部争当宣讲员 群众心窝暖洋洋 2019-03-25
  • 别空谈,说说看,这个“简单的逻辑关系”是什么关系? 2019-03-25
  • 快过闪电,MIUI 10与MIUI 9速度对比 2019-03-21
  • 泽州去年“免费教育”资金达5211万元 2019-03-19
  • 看你这么可怜,再提示你一下:你重孙算1,父母为2,父母的父母为4,父母的父母的父母为8…… 2019-03-19
  • 十一选五走势图江苏:本博不再更新,文章迁移至本人个人网站,点击后方网址直接跳转xin.kendd.cn

    文章将会同步更新至今日头条,点击后方链接即可直接跳转。 https://www.toutiao.com/c/user/5882683285/#mid=1626981393635339

    Redis基础知识补充及持久化、备份介绍(二)--技术流ken

    快乐彩开奖号码 www.752o.com  

    Redis知识补充

     在上一篇博客《Redis基础认识及常用命令使用(一)--技术流ken》中已经介绍了redis的一些基础知识,以及常用命令的使用,本篇博客将补充一些基础知识以及redis持久化和备份。

     

    一. 启用redis的认证功能

    第一步:登录redis并创建几个字符串,并退出

    [[email protected] ~]# redis-cli
    127.0.0.1:6379> set name zhangsan
    OK
    127.0.0.1:6379> set addr jiangsu
    OK
    127.0.0.1:6379> set tel 123456
    OK
    127.0.0.1:6379> MGET name addr tel
    1) "zhangsan"
    2) "jiangsu"
    3) "123456"

      127.0.0.1:6379> exit

     

    第二步:修改redis配置文件

    大约在80行处启动protect-mode,并添加一行requirepass及密码

    [[email protected] ~]# vim /etc/redis.conf 
    ...
      76 # By default protected mode is enabled. You should disable it only if
      77 # you are sure you want clients from other hosts to connect to Redis
      78 # even if no authentication is configured, nor a specific set of interfaces
      79 # are explicitly listed using the "bind" directive.
      80 protected-mode yes
      81 requirepass 123456
      82 
      83 # Accept connections on the specified port, default is 6379 (IANA #815344).
      84 # If port 0 is specified Redis will not listen on a TCP socket.
    ...

     

    第三步:重启redis

    [[email protected] ~]# systemctl restart redis

     

    第四步:登录redis

    可以发现登录时可以正常登录,但是已经无法查看里面的key了

    [[email protected] ~]# redis-cli
    127.0.0.1:6379> get name
    (error) NOAUTH Authentication required.

     

    第五步:验证登录

    使用auth加上配置文件中定义的密码即可进行验证,再次获取key就会成功了

    127.0.0.1:6379> auth 123456
    OK
    127.0.0.1:6379> get name
    "zhangsan"

     

    二.Redis的消息模式

     

    订阅的基本格式:

    SUBSCRIBE channel [channel ...]    #订阅给定的一个或多个频道的信息

     

    发送消息基本格式:

    PUBLISH channel message    #将信息 message 发送到指定的频道 channel 

     

    第一步:xshell开启两个窗口,并登陆redis

    第二步:订阅频道

    在一个窗口中执行如下命令,开启订阅

    127.0.0.1:6379> SUBSCRIBE ken
    Reading messages... (press Ctrl-C to quit)
    1) "subscribe"
    2) "ken"
    3) (integer) 1

     

    第三步:频道发布内容

    在另外一个窗口中在此频道发布内容

    127.0.0.1:6379> PUBLISH ken "my name is ken"
    (integer) 1
    127.0.0.1:6379> PUBLISH ken "welcome to my homepage"
    (integer) 1

     

    第四步:在另外一个窗口进行查看

    在订阅窗口查看??梢苑⑾忠丫邮盏蕉┰钠档赖男畔⒘?/p>

    127.0.0.1:6379> SUBSCRIBE ken
    Reading messages... (press Ctrl-C to quit)
    1) "subscribe"
    2) "ken"
    3) (integer) 1
    1) "message"
    2) "ken"
    3) "my name is ken"
    1) "message"
    2) "ken"
    3) "welcome to my homepage"

     

    三.Redis事务

    redis和mysql一样也支持事务

     

    MULTI

    标记一个事务块的开始。

    事务块内的多条命令会按照先后顺序被放进一个队列当中,最后由 EXEC 命令原子性(atomic)地执行

     

    EXEC

    执行所有事务块内的命令

     

    第一步:启动事务

    127.0.0.1:6379> MULTI
    OK

     

    第二步:输入命令、指令

    127.0.0.1:6379> INCR tel
    QUEUED
    127.0.0.1:6379> INCR tel
    QUEUED
    127.0.0.1:6379> INCR tel
    QUEUED
    127.0.0.1:6379> INCR tel
    QUEUED

      127.0.0.1:6379> get tel
      QUEUED

     

    第三步:执行

    127.0.0.1:6379> EXEC
    1) (integer) 123457
    2) (integer) 123458
    3) (integer) 123459
    4) (integer) 123460
    5) "123460"

    完整演示如下

    127.0.0.1:6379> MULTI
    OK
    127.0.0.1:6379> INCR tel
    QUEUED
    127.0.0.1:6379> INCR tel
    QUEUED
    127.0.0.1:6379> INCR tel
    QUEUED
    127.0.0.1:6379> INCR tel
    QUEUED
    127.0.0.1:6379> get tel
    QUEUED
    127.0.0.1:6379> EXEC
    1) (integer) 123457
    2) (integer) 123458
    3) (integer) 123459
    4) (integer) 123460
    5) "123460"

     

    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 900 1                 #900秒和至少1个键改变才会被保存
    save 300 10                #300秒和至少10个键改变才会被保存
    save 60 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 100            #当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文件是否存在

    [[email protected] ~]# ls /var/lib/redis/dump.rdb

     

    第二步:查看redis中的key

    [[email protected] ~]# redis-cli
    127.0.0.1:6379> keys *
    1) "name"
    2) "tel"
    3) "addr"

     

    第三步:关闭rdb持久化

    配置文件200行处,save后面为空,并注释掉202 203 204

     198 #   like in the following example:
     199 #
     200 save ""
     201 
     202 #save 900 1
     203 #save 300 10
     204 #save 60 10000
     205 

     

    第四步:重启redis

    [[email protected] ~]# systemctl restart redis

     

    第五步:移动rdb文件至home下

    [[email protected] ~]# mv /var/lib/redis/dump.rdb /home
    [[email protected] ~]# ls /var/lib/redis/

     

    第六步:重启redis

    [[email protected] ~]# systemctl restart redis

     

    第七步:再次登录redis查看key

    发现已经为空

    [[email protected] ~]# redis-cli
    127.0.0.1:6379> keys *
    (empty list or set)

     

    第八步:复制home下的rdb文件至/var/lib/redis下

    [[email protected] ~]# cp /home/dump.rdb /var/lib/redis/

     

    第九步:重启redis加载rdb文件

    [[email protected] ~]# systemctl restart redis

     

    第十步:再次查看keys

    发现所有的keys又回来了

    [[email protected] ~]# redis-cli
    127.0.0.1:6379> keys *
    1) "name"
    2) "tel"
    3) "addr"

     所以我们日常备份中只要备份这个文件即可

    posted @ 2018-11-15 10:15 技术流ken 阅读(...) 评论(...) 编辑 收藏
  • 豫园商城升级改造:这些楼顶可见最好的风景--旅游频道 2019-05-14
  • 头条 —频道 春城壹网 七彩云南 一网天下 2019-05-14
  • 人为某种意识而奋斗是幸福的,获得成绩或成就更幸福。 2019-05-10
  • 【专题】省违反中央八项规定精神和“四风”问题线索举报平台 2019-05-09
  • 确定这是热身赛?吴前拼到大腿抽筋 拆绷带继续干 2019-05-09
  • 应对排放新规 大众德国工厂计划短暂停产 2019-04-26
  • 一师一团土地确权登记颁证工作全面展开 2019-04-26
  • 一语惊坛(5月31日):“我们不一样”,中国向世界许下一个承诺。 2019-04-22
  • 俄罗斯世界杯F组:球迷风采 2019-04-10
  • 5月份国民经济数据发布:中国经济持续稳中向好 2019-04-10
  • 贵州宣讲十九大:干部争当宣讲员 群众心窝暖洋洋 2019-03-25
  • 别空谈,说说看,这个“简单的逻辑关系”是什么关系? 2019-03-25
  • 快过闪电,MIUI 10与MIUI 9速度对比 2019-03-21
  • 泽州去年“免费教育”资金达5211万元 2019-03-19
  • 看你这么可怜,再提示你一下:你重孙算1,父母为2,父母的父母为4,父母的父母的父母为8…… 2019-03-19
  • 极赛车pk10历史记录 老时时彩定胆杀号万位 pc蛋蛋大神吧 欧洲杯足彩胜负彩 听说幸运飞艇有漏洞 河南体彩快赢481走势图 海南彩票论坛 时时彩缩水网页 北京赛车pk10计划网站 外围北京赛车投注平台 足彩半全场预测分析 即开型刮刮乐规则 全天北京pk10在线计划 15选5开奖开奖规则 买篮彩用哪个手机软件 2012066七乐彩开奖