您好,欢迎来到站长目录(28sn.com)!


适合用于面试的一些redis基础知识的总结

来源:网络整理 浏览:146次 时间:2022-09-30
redis总结
  • redis基础

    • redis支持的各种对象和数据结构

    • RDB与AOF持久化

    • 过期键淘汰处理

    • 功能之发布与订阅-subscribe

    • redis事务的实现  

redis基础

redis是一个开源的,内存中的数据结构存储系统,它可以用作数据库,缓存和消息中间件。
特点:单进程,单线程,模型的KV数据库。支持多种类型的数据结构,如 字符串(strings),散列(hashes),集合(sets),
有序集合(sorted sets)与范围查询,bitmaps,hyperloglogs和地理空间(geospatial)索引半径查询。Redis内置了复制(replication),LUA脚本(Lua scripting)
LRU驱动时间(LRU eviction),事务(transactions)和不同级别的磁盘持久化(persistence),并通过Redis哨兵(Sentinel)和自动分区(cluster)提供高可用性(high availability)

redis支持的各种对象和数据结构
  • 字符串(Strings) ,一个字符串类型的值最多能存储512M字节的内容

  • 列表(lists),简单的字符串列表,按照插入顺序排序。

    LPUSH 插入一个新元素到列表头部,RPUSH插入一个新元素到列表的尾部。

  • 有序列表(Sorted sets),每个字符串元素都关联一个score,里面的元素总是通过scored进行排序。

  • 散列(hashes)

  • bit maps,

  • hyperloglogs, 用来做基数统计

    • PFADD: 指定元素添加到HyperLogLog中,

    • PFCOUNT:

      返回给定的HyperLogLog中的基数。

    • PFMERGE:

      合并多个HyperLogLog。

RDB与AOF持久化

redis 提供了多种不同级别的持久化方式,一种为RDB,一种为AOF

  • RDB持久化方式能够在指定的时间间隔能对你的数据进行快照存储.

  • AOF持久化方式记录每次对服务器写的操作,当服务器重启的时候会重新执行这些命令来恢复原始的数据,AOF命令以redis协议追加保存每次写的操作到文件末尾.Redis还能对AOF文件进行后台重写,使得AOF文件的体积不至于过大.

  • 如果你只希望你的数据在服务器运行的时候存在,你也可以不使用任何持久化方式.

  • 你也可以同时开启两种持久化方式, 在这种情况下, 当redis重启的时候会优先载入AOF文件来恢复原始的数据,因为在通常情况下AOF文件保存的数据集要比RDB文件保存的数据集要完整.

RDB 优缺点

优点:

  • 保存某个时间点得数据集适合用于备份

  • 文件紧凑,方便传输,适合用于灾难恢复

  • 执行的过程中,分出子进程操作,不影响主流程,可以优化redis性能。

  • 与AOF相比,在恢复大的数据集的时候,RDB更快。


    缺点:

  • 由于是间隔时间执行,在出现redis意外停止工作的时候肯定会导致一部分数据丢失。

  • RDB需要经常fork子进程来保存数据集到硬盘,当数据集比较大的时候,fork会非常耗时。

AOF 优缺点

优点:

  • 可以选择多种不同的fsync策略

  • AOF文件是一种只进行追加的日志文件

  • Redis 可以在 AOF 文件体积变得过大时,自动地在后台对 AOF 进行重写

缺点:

  • 对于相同的数据集来说,AOF 文件的体积通常要大于 RDB 文件的体积。

  • 根据所使用的 fsync 策略,AOF 的速度可能会慢于 RDB ,关闭fsync策略之后,AOF和RDB一样快。

fsync策略

  • 每次有新命令追加到 AOF 文件时就执行一次 fsync :

    非常慢,也非常安全

  • 每秒 fsync 一次:

    足够快(和使用 RDB 持久化差不多),并且在故障时只会丢失 1 秒钟的数据。

  • 从不 fsync :

    将数据交给操作系统来处理。

    更快,也更不安全的选择。

过期键淘汰处理

过期键淘汰策略分为 主动淘汰和被动淘汰

  • 主动淘汰 在key被访问的时候会判断这个key是否过期,如果过期,执行Del操作。

  • 被动淘汰 每秒执行十次

    • 测试随机的20个keys进行相关过期检测

    • 删除所有已经过期的keys

    • 如果有多于25%的keys过期,重复上述步骤

功能之发布与订阅-subscribe

redis支持发布订阅功能

redis事务的实现

redis通过MUTLTI,EXEC,WATCH等命令来实现事务(transaction)功能。事务提供了一种将多个命令请求打包,然后一次性,按顺序地执行多个命令的机制,并且在事务执行期间,服务器不会终端事务而改去执行其他客户端的命令请求,他会将事务中的所有命令都执行完毕,然后采取处理其他客户端的命令请求。

特点:redis事务不支持回滚,即使事务队列中的命令是执行错误的,也会执行下去,直到事务队列中的命令一直执行完。

ACID

  • 持久性:

    redis服务器在无持久化的内存模式下运作时,以及服务器不再RDB持久化模式下运作时,在AOF下appendfsync选项为everysec和no时,事务不具有耐久性,当服务器在AOF持久化模式下,并且appendfsync选项为always时,事务具有耐久性。

  • 隔离性:

    redis是使用单线程的方式来执行事务导致redis的事务都是串行方式执行,因此总是具有隔离性。

  • 原子性:

    不支持混滚但是碰到错误会一直执行下去。

  • 一致性:

WATCH

带有WATCH命令的事务会将客户端和被监视的键在数据库的watched_keys字典中进行关联,

watched_keys


推荐站点

  • 我爱发烧音乐我爱发烧音乐

    我爱发烧音乐囊括了从流行音乐到古典音乐多个类型的音乐作品,专栏推荐最新的音乐,提供音乐排名榜单!可供免费线上收听音乐,歌曲流畅,音效极佳! 网站提供的钢琴以及二胡专栏,可供收听者,陶冶情操,改善心情,是难得的轻音乐典藏!

    www.520fs.com
  • 世纪音乐网世纪音乐网

    世纪音乐网是专业的在线音乐试听MP3下载网站。歌曲总计30余万首,收录了网上最新歌曲和流行音乐,DJ舞曲,非主流音乐,经典老歌,劲舞团歌曲,搞笑歌曲,儿童歌曲,英文歌曲等。是您上网听歌的最佳网站。

    www.ssjj.com
  • 杭州网杭州网

      杭州网是杭州地区唯一的新闻门户网站,由中共杭州市委宣传部、杭州日报报业集团和杭州广播电视集团共同组建的杭州网络传媒有限公司运营。

    www.hangzhou.com.cn
  • 深圳在线深圳在线

      深圳在线 www.szol.net是深圳本地最大、最早的地方生活资讯网站之一,网站名“深圳在线www.szol.net”由南方报业传媒集团编辑委员会总编辑、南方日报社总编辑、南方都市报总编辑、南方书画院名誉院长王春芙亲笔题名,深圳在线www.szol.net团队与深圳热线www.szonline.net、奥一网www.oeeee.com都源于全国最早成立于1996年的知名网络公司——深圳万用网。

    www.szol.net
  • 今题网今题网

     今题网- 中国领先的社区服务网,提供社区服务, 在线交友和商家推广服务,于2004年创建上线,公司现有员工超过百名。今题网自成立以来,凭借其独特的定位和丰富的社区交友功能, 凭借其团队超强的搜索引擎优化技术吸引超过千万的用户成为今题网的注册会员。

    www.jinti.com

鄂公网安备 42062502000001号