zoukankan      html  css  js  c++  java
  • Linux+Redis实战教程_day02_消息订阅与发布_多数据库_redis批量操作-事务_redis持久化

    5、扩展知识-消息订阅与发布(了解)

    订阅新闻新闻发布

    subscribe channel订阅频道,例:subscribe mychat,订阅mychat这个频道

    psubscribe channel*:批量订阅频道例:psubscribe s*,订阅”s”开头的频道

    publish channel content:在指定的频道中发布消息,如 publish mychat ‘today is a newday’

    6、扩展知识-多数据库(了解)

    MySQL-数据库可以自己用语句自定义创建

    create database xxxx;

    redis-也是有数据库的Redis已经提前创建好了。

    Redis默认有16个数据库。0,1,2…….15

    在redis上所做的所有数据操作都是默认在0号数据库上操作

    数据库和数据库之间不能共享键值对

    切换数据库

    select 数据库名;

    把某个键值对进行数据库移植

    move newkey 1将当前库的key移植到1号库中

    慎用

    清空当前数据库:flushdb

    和redis服务器数据的清空:flushall

    7、扩展知识-redis批量操作-事务(了解)

    MySQL-事务: 目的为了保证数据完整性,安全。

    Redis-事务 目的为了进行redis语句的批量化执行

    multi:开启事务用于标记事务的开始,其后执行的命令都将被存入命令队列,直到执行EXEC时,这些命令才会被原子的执行,类似与关系型数据库中的begin transaction

     

    exec:提交事务,类似与关系型数据库中的:commit        执行批量化

    discard:事务回滚类似与关系型数据库中的:rollback     不执行批量化操作

    8、扩展知识-redis了解命令(了解)

    quit   退出客户端

      ctrl+c

    dbsize

    返回当前数据库中key 的数目

      

    info    查看redis数据

    9、扩展知识-redis持久化(了解)

    内存(兔子):高效、断电数据就会消失

    硬盘(乌龟):读写速度慢于内存的,断电数据依旧存在

    持久化把数据保存在硬盘上

    关系型数据库MySQL-持久化

      任何增删改语句都是在硬盘上做的操作

      断电以后硬盘上的数据还是存在

    非关系型数据库redis:

      默认情况下所有的增删改数据都是在内存中进行操作

      断电以后内存中的数据不存在的

      断电以后redis的部分数据会丢失,丢失的数据是保存在内存中的数据。

    Redis存在持久化操作的

    Redis有两种持久化策略

    RDB:是redis的默认持久化机制

      RDB相当于照快照保存的是一种状态

      现在有20G数据----àkb快照

      优点:①快照保存数据速度极快,还原数据速度极快

            ②适用于灾难备份

      缺点:①小内存机器不适合使用。

    RDB机制符合要求就会照快照。(随时随地启动),会占用一部分系统资源(突然的),很可能内存不足直接宕机。(宕机后,服务器会关闭,非正常关闭)

          服务器正常关闭时 照快照

          Key满足一定条件照快照

        适用于内存比较充裕的计算机

        RDB何时进行照快照

        ①服务器正常关闭时会照一次快照   ./bin/redis-cli shutdown

        ②key满足一定条件会照一次快照

    输入命令:vim redis.conf中查找::/save 900 1

    save 900 1 #每900秒(15分钟)至少有1个key发生变化,则dump内存快照。

    save 300 10 #每300秒(5分钟)至少有10个key发生变化,则dump内存快照

    save 60 10000 #每60秒(1分钟)至少有10000个key发生变化,则dump内存快照

    key发生变化(key数据添加、修改、删除)

    例如1:12:00  12:15  1个key发生变化,在12:15就照一次快照保存

        12:00  12:15  ,没有任何key发生变化,在12:15不会照快照

    例如2:12:00  12:05  11个key发生变化,12:05就照一次快照保存

    12:00  12:05  有9个key发生变化,12:05不会照快站,12:15 会照快照

    例如3:  12:00  12:01  15000个key发生变化,12:01会照一次快照保存

    12:00  12:01  有1000个key发生变化,12:01不会照快站,12:05会照快照

    AOF: 使用日志功能保存数据操作

       默认AOF机制关闭的

        每秒同步(默认):每秒进行一次AOF保存数据。               安全性低比较节省系统资源

    每修改同步:只要有key变化语句,就进行AOF保存数据。比较安全,但是极为浪费效率

    不同步:不进行任何持久化操作                不安全

      AOF操作

      只会保存导致key变化的语句

     AOF配置

    always    #每次有数据修改发生时都会写入AOF文件

    everysec  #每秒钟同步一次,该策略为AOF的缺省策略

    no       #从不同步。高效但是数据不会被持久化

     

    开启AOF机制

    在redis.conf中输入:/aof查找以下,改为yes

    策略的选择:

    优点:①持续性占用极少量的内存资源

    缺点:①日志文件会特别大,不适用于灾难恢复

          ②恢复效率远远低于RDB

      适用于内存比较小的计算机

  • 相关阅读:
    Helpers Overview
    Validation
    Support Facades
    Session Store
    位运算(参考百科)
    开源项目_可能使用到的开源项目集合
    秒杀系统架构分析与实战(转)
    shell命令之根据字符串查询文件对应行记录
    MySQL做为手动开启事务用法
    spring 加载bean过程源码简易解剖(转载)
  • 原文地址:https://www.cnblogs.com/justdoitba/p/8318841.html
Copyright © 2011-2022 走看看