数据库|Redis使用指南

文章图片
文章图片
文章图片
Redis是一个使用ANSI C编写的开源、包含多种数据结构、支持网络、基于内存、可选持久性的键值对存储数据库 。
- 基于内存运行 , 性能高效
- 支持分布式 , 理论上可以无限扩展
- key-value存储系统
- 开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库 , 并提供多种语言的API
- C/S通讯模型
- 单进程单线程模型
- 丰富的数据类型
- 操作具有原子性
- 持久化
- 高并发读写
- 支持lua脚本
Redis 的持久化策略RDB:快照形式是直接把内存中的数据保存到一个 dump 的文件中 , 定时保存 , 保存策略 。 AOF:把所有的对 Redis 的服务器进行修改的命令都存到一个文件里 , 命令的集合 。 Redis 默认是快照 RDB 的持久化方式 。
当 Redis 需要做持久化时 , Redis 会 fork 一个子进程 , 子进程将数据写到磁盘上一个临时 RDB 文件中 。
使用 AOF 做持久化 , 每一个写命令都通过 write 函数追加到 appendonly.aof 中 , 配置方式如下:
appendfsyncyesappendfsync always #每次有数据修改发生时都会写入AOF文件 。 appendfsync everysec #每秒钟同步一次 , 该策略为AOF的缺省策略 。
AOF 可以做到全程持久化 , 只需要在配置中开启 appendonly yes 。 这样 Redis 每执行一个修改数据的命令 , 都会把它添加到 AOF 文件中 , 当 Redis 重启时 , 将会读取 AOF 文件进行重放 , 恢复到 Redis 关闭前的最后时刻 。
主从复制主从配置结合哨兵模式能解决单点故障问题 , 提高 Redis 可用性 。
从节点仅提供读操作 , 主节点提供写操作 。 对于读多写少的状况 , 可给主节点配置多个从节点 , 从而提高响应效率 。
Redis 2.8 之前使用 sync[runId
[offset
同步命令 , Redis 2.8 之后使用 psync[runId
[offset
命令 。
runId:每个 Redis 节点启动都会生成唯一的 uuid , 每次 Redis 重启后 , runId 都会发生变化 。 offset:主节点和从节点都各自维护自己的主从复制偏移量 offset , 当主节点有写入命令时 , offset=offset+命令的字节长度 。 从节点在收到主节点发送的命令后 , 也会增加自己的 offset , 并把自己的 offset 发送给主节点 。 这样 , 主节点同时保存自己的 offset 和从节点的 offset , 通过对比 offset 来判断主从节点数据是否一致 。 repl_backlog_size:保存在主节点上的一个固定长度的先进先出队列 , 默认大小是 1MB 。
主节点发送数据给从节点过程中 , 主节点还会进行一些写操作 , 这时候的数据存储在复制缓冲区中 。
从节点同步主节点数据完成后 , 主节点将缓冲区的数据继续发送给从节点 , 用于部分复制 。
主节点响应写命令时 , 不但会把命名发送给从节点 , 还会写入复制积压缓冲区 , 用于复制命令丢失的数据补救 。
Redis 的应用场景包括:缓存系统(“热点”数据:高频读、低频写)、计数器、消息队列系统、排行榜、社交网络和实时系统 。
- 数据库|饿了么免单活动上热搜,是薅还是被薅羊毛?
- 北京市|36氪首发|云原生数据库公司「拓数派」完成新一轮战略融资,估值已达准独角兽级别
- 明码标价|3000元可购买整个学习通数据库?我们的信息被公开售卖,明码标价
- 数据库|撤离中国市场!美国科技巨头已全面关店,居然被一个小水杯击败
- 数据库|真国产之光?曝小米12 Ultra将搭载三款自研芯片,全方位加强!
- 数据库|云正日益主导IT格局,中国云服务市场继续保持强劲增长!
- 数据库|想要商店的顾客源源不断?试试UGC,让顾客成为品牌的最佳代言人!
- 数据库|非常实用的PC软件,每一款都是神器!!
- 数据库|618轻薄本全攻略!四款标配好屏幕的新品来袭,华硕好屏可闭眼入
- 数据库|realme突然发布新机,5000mAh+128GB,仅1099元起售价亲民
