zoukankan      html  css  js  c++  java
  • redis

    reids是一个基于内存的高性能key-value数据库

    特点: 定期通过异步操作把数据库数据刷新到硬盘进行保存,性能超级高
    支持保存多种数据结构

    主要缺点: 数据库容量受到物理内存的限制,不能海量的高性能读写,
    在较小数据量的高性能操作运算

    Redis 是单进程单线程的

    好处:
    1:速度快:
    2:支持丰富数据类型:string,list,set,hash
    3:支持事务:操作都是原子性,要么全部执行,要么全部不执行
    4:丰富的特性:可用于缓存,设置过期,然后删除

    ----------------------------------------------------------------------------------------------------------------------

    redis的持久化策略
    AOF + RDB
    RDB :什么是RDB
    在指定的时间间隔内将内存中的数据集快照写入磁盘, (在指定的时间内将内存中的数据写入磁盘,)
    也就是行话讲的Snapshot快照,它恢复时是将快照文件直接读到内存里 (恢复时是将dump.rdb文件读取到内存中)
    原理:(必须记住)

    Redis会单独创建(fork)一个子进程来进行持久化,会先将数据写入到
    一个临时文件中,待持久化过程都结束了,再用这个临时文件替换上次持久化好的文件。

    整个过程中,主进程是不进行任何IO操作的,这就确保了极高的性能

    如果需要进行大规模数据的恢复,且对于数据恢复的完整性不是非常敏感,那RDB方
    式要比AOF方式更加的高效。RDB的缺点是最后一次持久化后的数据可能丢失。
    ----------------------------------------------------------------------------------------------------------------------
    RDB:
    Redis会重新fork出一条子进程,这条子进程和主进程一模一样,
    因为cpu里面读和写的操作很慢,所以说fork出一条子进程,让它来进行读和写操作,
    当持久化操作完成之后,它就会将fork出来的子进程中的文件去替换原来进程中的那个配置文件,
    整个过程中,主进程不进行任何IO操作,这就确保了极高的性能,RDB适合进行大规模数据的恢复,
    因为它有一个缺点,就是最后一次持久化后的数据可能会丢失
    RDB的持久化策略分为主动和被动,主动是Save和BGsave,save是全阻塞,BGsave是异步操作,
    被动策略有3种,默认情况为900s触发1次,300s触发10次,60s触发1万次

    ----------------------------------------------------------------------------------------------------------------------
    fork:
    主动
    Save:save时只管保存,其它不管,全部阻塞
    BGSAVE:Redis会在后台异步进行快照操作,快照同时还可以响应客户端请求。可以通过lastsave 命令获取最后一次成功执行快照的时间
    flush操作
    shutdown 操作

    被动
    save ""

    可选
    stop-writes-on-bgsave-error :如果配置成no,表示你不在乎数据不一致或者有其他的手段发现和控制

    rdbcompression 对于存储到磁盘中的快照,可以设置是否进行压缩存储。如果是的话,redis会采用
    LZF算法进行压缩。如果你不想消耗CPU来进行压缩的话,可以设置为关闭此功能

    rdbchecksum: 在存储快照后,还可以让redis使用CRC64算法来进行数据校验,但是这样做会增加大约
    10%的性能消耗,如果希望获取到最大的性能提升,可以关闭此功能
    dbfilename:dump.rdb

  • 相关阅读:
    设计模式_EventObject和EventListener
    设计模式_Observable与Observer
    zooKeeper_《ZooKeeper官方指南》一致性保障
    thread_为什么多线程是个坏主意
    gtk+学习笔记(三)
    linux c下输入密码不回显
    浮点数在计算机内存中的存储方式
    gtk+学习笔记(二)
    linux下c图形化编程之gtk+2.0简单学习
    关于字符串排序合并的问题
  • 原文地址:https://www.cnblogs.com/govzhou/p/9721929.html
Copyright © 2011-2022 走看看