zoukankan      html  css  js  c++  java
  • Redis (学习笔记)

    Redis是一个key value的存储系统,支持存储的value类型相对较多(包括String字符串、list链表、set集合、arrySet有序集合)

    这些数据类型都支持 push、pop、add、remove及取交、并、差集等原子型操作(原子型指一个事物完整的操作,操作成功则提交,失败则回滚)

    因此调用Redis的操作,不用考虑多线程间的并发问题。

    在此基础之上,Redis支持各种不同方式的排序,为了保正效率,数据都是缓存在内存中的。

    区别是Redis会周期性的把更新的数据写入磁盘,或者把修改操作写入追加的操作文件(前者为默认的RDB存储模式,RDB:是将数据写入一个零时文件,持久化结束以后,用这个零时文件替换上次持久化的文件,达到数据恢复的目的,其优点是:使用单独子进程来进行持久化,主经常不会进行任何操作,保证了Redis的高效性能,其缺点是:RDB是间隔一段时间进行持久化,如果持久化之间,Redis发生故障,会发生数据的丢失,所以这种方式适合数据要求不严谨的时候。其存储机制默认设置为,如果更改了一个key则间隔900秒之后,进行一次持久化存储,如果更改了10个key,则300秒后进行一次持久化存储,如果更改1万个key,则自修改时起,一分钟进行一次持久化存储,持久化完成后就将零时文件替换掉旧的RDB文件了)

    RDB恢复数据:重启Redis服务,启动的时候Redis的server会从dump.rdb中同步数据。

    AOD恢复数据:是将执行过的指令记录下来,数据恢复按照从前到后的顺序再将指令执行一遍,实现数据恢复。优点:可以保持更高的数据完整性,如果设置追加file的时间是1s,如果redis发生故障,最多会丢失1s的数据。且如果日志写入不完整支持redis-check-aof来进行日志修复;AOF文件没被rewrite之前(文件过大时会对命令进行合并重写),可以删除其中的某些命令(比如误操作的flushall)。缺点:AOF文件比RDB文件大,且恢复速度慢。

    这里有一篇文章可以参考:https://www.cnblogs.com/meitian/p/5209877.html

     设计意图:将一些不常更改的数据,存一个副本到Redis中,客户端在请求这些数据的时候,将优先发送请求去Redis中获取相关数据,如果Redis中存在相关的数据,则直接返回,就不需要访问数据库了,如果在Redis中没有获取到,则发送请求去DB获取相关数据,在DB返回数据的同时,将最新最新的数据更新回Redis中,这样客户端在下次请求这个数据时,就可以直接从Redis中返回了。(且为了确保Redis缓存的实时性,即每当数据发送变化的时候,比如数据有被修改或删除的情况下,要同步更新Redis缓存信息,确保用户不会在缓存中取到旧的信息)

    可以在操作数据时,先清空对应key下的数据,这样客户端请求时就会去db中更新,下次再请求时就可以直接从Redis中获取数据了。

  • 相关阅读:
    http-server -S 开启 https 服务
    material-ui react的ui框架 有时间可以看看 chia用的前台ui
    关于vue.js:iview-Bug-5114在iview的Poptip气泡提示内调用DatePicker出现遮挡或同时关闭窗口等冲突问题[转]
    coding 的pages 静态要六分钱一个月,我也是醉了。
    jeesite 有时间看看
    选择单词后 按 ctrl + space 单词发音
    什么是CI/CD
    PostCSS深入学习: PostCSS和Sass、Stylus或LESS一起使用
    浅析requestAnimationFrame
    webpack性能优化
  • 原文地址:https://www.cnblogs.com/xk920/p/10069556.html
Copyright © 2011-2022 走看看