![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Redis
文章平均质量分 69
Dazhu233
这个作者很懒,什么都没留下…
展开
-
AOF持久化
AOF持久化 Redis提供了两种持久化功能,RDB和AOF,RDB持久化通过保存数据库中的键值对来记录数据库,AOF持久化时通过保存Redis服务器所执行的写命令来记录数据库状态的,上篇文章已经介绍过RDB持久化,这篇文章就来介绍以下AOF持久化。举个例子,如果我们对空白数据库执行以下写命令,那么数据库将包含三个键值对: RDB是将msg,fruits,nembers...原创 2018-04-30 10:39:37 · 343 阅读 · 0 评论 -
Redis之EXPIRE
Redis之EXPIRE通过expire或者pexpire命令,客户端可以以秒或者毫秒精度为数据库中的某个键设置生存时间(Time To Live,TTL),在经过指定的秒数或者毫秒数之后,服务器就会自动删除生存时间为0的键。与expire和pexpire类似,客户端也可以通过exporeat或者pexpireat命令,以秒或者毫秒精度来给数据库中的某个键设置过期时间(expire time)。过...原创 2018-04-29 15:58:57 · 1888 阅读 · 0 评论 -
Redis之压缩列表
Redis之压缩列表 压缩列表(ziplist)是列表键和哈希键的底层实现之一。当一个列表键只包含少量列表项,并且每个列表项要么就是小整数值,要么就是长度比较短的字符串,Redis就会使用压缩列表来做列表键的底层实现。 下面看一下压缩列表实现的列表键:列表键里面包含的都是1、3、5、10086这样的小整数值,以及''hello''、''world''这样的短字符串。再看...原创 2018-04-26 23:37:24 · 525 阅读 · 0 评论 -
Redis中的整数集合
Redis中的整数集合 整数集合(intset)是集合键的底层实现之一,当一个集合只包含整数值元素,并且这个集合的元素数量不多时,Redis就会使用整数集合作为集合键的底层实现。我们创建一个含有五个元素的集合键:这种形式的集合键就是整数集合。整数集合可以保存的类型为int_16_t、int32_t或者int64_t的整数值,并且集合中不存在重复的元素。contents数组时整数集合的...原创 2018-04-26 22:18:49 · 468 阅读 · 0 评论 -
Redis中的跳表
Redis中的跳表 跳跃表(skiplist)是一种有序的数据结构,通过在每个节点中维持多个指向其他节点的指针,从而达到快速访问节点的目的。 Redis中的跳跃表由redis.h/zskiplistNode和redis.h/zskiplist两个结构定义,其中zsliplistNode结构用于表示跳跃表节点,而zskiplist结构则用于保存跳跃表节点的相关信息,...原创 2018-04-26 21:48:48 · 1865 阅读 · 0 评论 -
Redis底层之字典
Redis底层之字典字典,是一种用于保存键值对(key-value pair)的数据结构。举个例子,我们向redis中写入:msg就是键,“hello world”就是值,他们是一对键值对。而许多这样的键值对组合在一起就成了哈希表。Redis的字典就是使用哈希表作为底层实现,一个哈希表中存放多个哈希表节点(每个节点保存一个键值对)。Redis字典使用的hash表结构如下:table是一个数组,数组...原创 2018-04-25 23:18:12 · 228 阅读 · 0 评论 -
Redis底层之链表
Redis底层之链表Redis底层链表节点使用listNode来实现。每个listNode节点包含三个成员,一个prev指针指向前一个listNode,一个next指针指向下一个节点。一个value指针指向任何类型的值。多个listNode通过prev和next指针组成双端链表。通过一个list比较方便地来管理产生的listNode链表。list结构为链表提供了表头指针head,表尾指针tail,...原创 2018-04-25 22:42:08 · 606 阅读 · 0 评论 -
Redis底层之String
Redis底层之StringRedis底层是用C语言写的,Redis中的常用数据类型之一是String。我们来看一下Redis中的String是怎么实现的。首先来看一下C语言中的字符串:就是一个简单的字符型数组。Redis中为了实现方便的扩展、安全和性能,自己定义了一个结构用来存储字符串。我们叫它SDS(simple dynamic string)Redis定义了一个sdshdr的结构。里面除了保...原创 2018-04-24 23:44:35 · 4583 阅读 · 0 评论 -
Redis中的排序sort
Redis中的排序sort Redis的SORT命令可以对列表键、集合键或者有序集合键的值进行排序。 SORT命令对number列表元素排序 使用ALPHA选项对一个包含字符串值的集合键进行排序SORT<key>命令的实现 SORT命令的最简单执行形式为: SORT<key> 这个命令可以对...原创 2018-05-01 17:01:27 · 1022 阅读 · 0 评论 -
Redis事务支持
Redis事务支持 Redis通过MULTI、EXEC、WATCH等命令来实现事务(transaction)功能。事务提供了一种将多个命令请求打包,然后一次性、按顺序地执行多个命令的机制,并且在事务执行期间,服务器不会中断事务而去执行其他客户端的命令请求,它会将事务中的所有命令都执行完毕才去处理其他客户端的命令请求。 下面是一个事务执行的过程: MULTI...原创 2018-05-01 15:57:35 · 2257 阅读 · 0 评论 -
Redis集群
Redis集群 Redis集群是Redis提供的分布式数据库方案,集群通过分片(sharding)来进行数据共享,并提供复制和故障转移功能。节点 一个Redis集群通常由多个节点(node)组成,在刚开始的时候,每个节点都是相互独立的,他们都处于一个只包含自己的集群当中,要组建一个真正可以工作的集群,必须将各个独立的节点连接起来。 通过CLUSTER ME...原创 2018-05-01 11:38:52 · 240 阅读 · 0 评论 -
Redis中的Sentinel哨兵
Redis中的Sentinel哨兵 Sentinel(哨兵)是Redis的高可用性解决方案:由一个或多个Sentinel实例组成的Sentinel系统可以监视任意多个主服务器以及这些主服务器属下的所有从服务器,并在被监视的主服务器进入下线状态时,自动将下线主服务器属下的某个从服务器升级为新的主服务器,然后由新的主服务器代替已下线的主服务器继续处理命令请求。 ...原创 2018-05-01 00:11:29 · 208 阅读 · 0 评论 -
Redis主从复制详解
Redis主从复制详解 在Redis中,用户可以通过执行SLAVEOF命令或者设置slaveof选项,让一个服务器去复制(replicate)另一个服务器,我们称被复制的服务器为主服务器(master),而对主服务器进行复制的服务器则被称为从服务器(slave)。 比如我们有两个Redis服务器,一个为127.0.0.1:6379和127.0.0.1:12345。如果我...原创 2018-04-30 20:54:14 · 208 阅读 · 0 评论 -
RDB持久化
RDB持久化 Redis是一个键值对数据库服务器。由于Redis是内存数据库,它将自己的数据库状态存储在内存里面,所以如果想要将Redis数据库中的数据存储下来,则必须要将内存中的数据持久化到硬盘中。 Redis提供了RDB和AOF两种持久化功能,我们今天先来介绍以下RDB持久化,这个功能可以将Redis在内存中的数据库状态保存到磁盘里面,避免数据意外丢失。 ...原创 2018-04-29 22:59:42 · 453 阅读 · 0 评论