
Redis
文章平均质量分 71
GreedySnaker
静悄悄的不知何时发起,却只见落幕时众人皆知,轰轰烈烈
展开
-
Redis(七)-持久化之(AOF持久化)
一 简介针对RDB不适合实时持久化的问题,Redis提供了AOF持久化方式来解 决AOF(append only file)持久化:以独立日志的方式记录每次写命令, 重启时再重新执行AOF文件中的命令达到恢复数据的目的。AOF的主要作用是解决了数据持久化的实时性,目前已经是Redis持久化的主流方式。理解掌握好AOF持久化机制对我们兼顾数据安全性和性能非常有帮助与RDB持久化通过保存数据库中的键值对来记录数据库状态不同,AOF持久化是通过保存Redis服务器所执行的写命令来记录数据库状态的,如下图所示转载 2021-03-29 19:13:01 · 356 阅读 · 0 评论 -
Redis(六)持久化之(RDB持久化)
一 简介因为Redis是内存数据库,它将自己的数据库状态储存在内存里面,所以如果不想办法将储存在内存中的数据库状态保存到磁盘里面,那么一旦服务器进程退出,服务器中的数据库状态也会消失不见RDB持久化可以手动执行,也可以配置定期执行,可以把某个时间的数据状态保存到RDB文件中,反之,我们可以用RDB文件还原数据库状态。二 手动触发机制有两个命令可以生成RDB文件:SAVE 命令由服务器进程直接执行保存操作,所以该命令会阻塞服务器,服务器不能接受其他指令。BGSAVE 命令由子进程执行保存操作,所转载 2021-03-29 18:44:07 · 376 阅读 · 0 评论 -
Redis(五) 数据结构ZSet有序集合
一有序集合对象简介它保留了集合不能有重复成员的特性, 但不同的是,有序集合中的元素可以排序。但是它和列表使用索引下标作为排序依据不同的是,它给每个元素设置一个分数(score)作为排序的依据下图列出了列表、集合和有序集合三者的异同点:二 常用命令命令三 内部编码有序集合类型的内部编码有两种:ziplist(压缩列表):当有序集合的元素个数小于zset-max-ziplistentries配置(默认128个),同时每个元素的值都小于zset-max-ziplist-value配 置(默认转载 2021-03-26 15:31:08 · 168 阅读 · 0 评论 -
Redis(四) 数据结构Set集合
一 集合对象简介与列表一样都可以存储多个字符串,但是集合通过散列表来保证自己存储的元素不能重复,集合中的元素是无序排列的二 常用命令常用命令同时 Redis为集合提供了求交集(SINTER)、并集(SUNION)、差集(SDIFF)等操作很方便。三 内部编码集合对象保存的所有元素都是整数值,且集合对象保存的元素数量不超过512(可以修改)个,采用intset编码,否则采用hashtable编码的规则:intset编码的集合对象使用整数集合作为底层实现,集合对象包含的所有元素都被保存在 整数集原创 2021-03-24 15:07:59 · 155 阅读 · 0 评论 -
Redis(三) 数据结构Hash哈希
一 哈希对象简介几乎所有的编程语言都提供了哈希(hash)类型,它们的叫法可能是哈希、字典、关联数组;哈希又称散列在Redis中,哈希类型是指键值本身又是一个键值对结构,形如value={{field1,value1},…{fieldN,valueN}},Redis键值对和哈希类型二者的关系可以下图表示二 常用命令命令 最好亲自去敲一下。三、内部编码哈希类型的内部编码有两种:ziplist(压缩列表):当哈希类型元素个数小于hash-max-ziplist-entries 配置(默认原创 2021-03-24 10:40:32 · 230 阅读 · 0 评论 -
Redis(一) 数据结构String字符串
Redis基础数据结构Redis有五种基础数据结构,分别是:String(字符串)、list(列表)、set(集合)、hash(hash)和zset(有序集合)。一 String(字符串)Redis所有的数据结构都是以唯一的key字符串作为名称,然后通过这个唯一的key值来获取响应的value数据结构,不同类型的数据结构的差异就在于value的结构不一样。字符串结构使用非常广泛,一个常见的用途就是缓存用户信息。我们将用户信息结构体使用JSON序列化成字符串,然后将序列化后的字符串塞进redis来缓存原创 2021-03-22 14:07:47 · 113 阅读 · 0 评论 -
Redis(二) 数据结构List列表
一 List(列表)列表类型是用来存储多个有序的字符串,一个列表最多可以存储2^{32}-1个元素。列表是一种比较灵活的数据结构,它可以充当栈和队列的角色,在实际开发上有很多应用场景数据结构typedef struct listNode { // 前置节点 struct listNode *prev; // 后置节点 struct listNode *next; // 节点的值 void *value;}listNode;二 常用命令三 使用场景lpush+lpop=原创 2021-03-22 15:13:54 · 107 阅读 · 0 评论