随笔分类 -  redis

摘要:Redis的事务以一个MULTI命令开始,接着将多个命令放入事务中,最后由EXEC命令将这个事务提交 MULTI SET "name" "Practical Common Lisp" GET "name" SET "author" "Peter Seibel" Get "auther" EXEC # 阅读全文
posted @ 2021-11-01 21:03 刚刚好。 阅读(261) 评论(0) 推荐(0) 编辑
摘要:Redis集群是Redis提供的分布式数据库方案,集群通过分片来进行数据共享,并提供复制和故障转移功能 #节点 一个Redis集群通常由多个节点Node组成,节点与节点之间通过握手(CLUSTER MEET)建立连接 127.0.0.1:7000>cluster meet 127.0.0.1:700 阅读全文
posted @ 2021-10-25 19:13 刚刚好。 阅读(273) 评论(0) 推荐(0) 编辑
摘要:Sentinel(哨兵)是redis高可用的解决方案:由一个或多个Sentinel实例组成的Sentinel系统可以监视任意多个主服务器,以及这些主服务器属下的所有从服务器,并在被监视的主服务器进行下线状态时,自动将下线主服务器属下的某个从服务器升级为新的主服务器。 对每个被监视的主服务器来说,Se 阅读全文
posted @ 2021-10-19 18:12 刚刚好。 阅读(480) 评论(0) 推荐(0) 编辑
摘要:在redis中用户可以通过slaveof命令 让一个服务器成为另一个服务器的从服务器 #旧版复制功能 旧版Redis复制功能分为两步:同步和命令传播 ##同步 1.从服务器向主服务器发送sync命令 2.主服务器收到sync命令执行BGSAVE命令,在后台生成一个RDB文件,并使用一个缓冲区记录从现 阅读全文
posted @ 2021-10-19 16:08 刚刚好。 阅读(50) 评论(0) 推荐(0) 编辑
摘要:Redis是基于内存的数据库,而内存是断电即失的,因此我们需要持久化功能。 而Redis的持久化有两种,一种是RDB,一种是AOF。RDB是基于数据的持久化,记录的是数据库中的数据。AOF是基于状态的持久化,记录的是修改数据库的操作。 需要注意的是如果服务器开启了AOF持久化,则会优先使用AOF持久 阅读全文
posted @ 2021-10-18 20:10 刚刚好。 阅读(143) 评论(0) 推荐(0) 编辑
摘要:#保存过期时间 redisDb结构(存储了数据库中所有的键值对)中有一个expires字典保存了数据库中所有键的过期时间。我们称这个字典为过期字典 过期字典的键是一个指针,这个指针指向键空间的某个键对象 过期字典的值是一个long long类型的整数,这个整数保存了键对象的过期时间--一个毫秒精度的 阅读全文
posted @ 2021-10-12 16:15 刚刚好。 阅读(92) 评论(0) 推荐(0) 编辑
摘要:Redis系统里一共有五种对象,包括字符串对象,列表对象,哈希对象,集合对象和有序集合对象。 每种对象的实现都比较灵活,可以根据不同的使用场景自由选择之前讲过的合适的数据结构(整数,字符串,字典,双端列表,压缩列表,整数集合,跳跃表) #对象和类型和编码 Redis中每一个对象都是由一个redisO 阅读全文
posted @ 2021-10-08 16:30 刚刚好。 阅读(94) 评论(0) 推荐(0) 编辑
摘要:同整数集合一样压缩列表也不是基础数据结构,而是 Redis 自己设计的一种数据存储结构。它有点儿类似数组,通过一片连续的内存空间,来存储数据。不过,它跟数组不同的一点是,它允许存储的数据大小不同。 #压缩列表 听到“压缩”两个字,直观的反应就是节省内存。之所以说这种存储结构节省内存,是相较于数组的存 阅读全文
posted @ 2021-10-02 16:25 刚刚好。 阅读(1580) 评论(0) 推荐(0) 编辑
摘要:#整数集合 整数集合(intset)并不是一个基础的数据结构,而是Redis自己设计的一种存储结构,是集合键的底层实现之一,当一个集合(set)只包含整数值元素,并且这个集合的元素数量不多时, Redis i就会使用整数集合作为集合键的底层实现。 ##实现 整数集合(intset)是Redis用于保 阅读全文
posted @ 2021-10-01 20:16 刚刚好。 阅读(195) 评论(0) 推荐(0) 编辑
摘要:#跳跃表 跳跃表是一种有序的数据结构,它通过在每个节点中维持多个指向其他节点的指针,从而达到快速访问节点的目的。 跳跃表的平均查询时间复杂度是O(logN),最坏是O(N),还可以通过顺序性操作批量处理节点。 大部分情况下,跳跃表的性能可以和平衡树媲美,但是跳跃表的实现要比平衡树简单,因此常用跳跃表 阅读全文
posted @ 2021-10-01 19:59 刚刚好。 阅读(102) 评论(0) 推荐(0) 编辑
摘要:#字典 字典,类似于map,是一种用于保存键值对(key-value)的抽象数据结构 在redis的字典中,每个键都是独一无二的。 字典在Redis中的应用非常广泛,比如Redis的底层数据结构就是使用字典来实现的,对数据库的增删改查也是构建在对字典的操作之上的。 举个🌰,当我们执行命令: set 阅读全文
posted @ 2021-09-29 21:49 刚刚好。 阅读(366) 评论(1) 推荐(0) 编辑
摘要:#链表 链表提供了高效的节点重排能力,以及顺序性的节点访问方式,并且可以通过增删节点灵活调整链表的长度。 链表在Redis中应用非常广泛,比如列表的实现方式之一就是链表 #链表实现 typedef struct listNode{ //前置节点 struct listNode *prev; //后置 阅读全文
posted @ 2021-09-29 15:36 刚刚好。 阅读(131) 评论(0) 推荐(0) 编辑
摘要:Redis Redis即远程字典服务,是当下最热门的Nosql技术之一 redis能干嘛? 数据库 缓存 消息中间件 1.内存存储,持久化,因为内存是断电即失的,因此持久话(rdb,aof)十分重要 2.效率高,可以用于高速缓存 3.发布订阅系统 4.地图信息分析 5.计时器,计数器(浏览量) .. 阅读全文
posted @ 2021-09-28 22:37 刚刚好。 阅读(51) 评论(0) 推荐(0) 编辑
摘要:#SDS Redis底层并没有使用C语言的传统字符串(以空字符结尾的字符数组),而是自定义了一种简单的动态字符串类型(SDS) 在Redis里,C字符串只会作为字符串字面量用在一些无需对字符串值进行修改的地方,比如打印日志。其余地方使用的都是SDS 比如 set msg "hello world" 阅读全文
posted @ 2021-09-28 22:24 刚刚好。 阅读(112) 评论(0) 推荐(0) 编辑
摘要:###Redis分布式锁 我们使用redis 实现分布式锁,因为redis是单线程的,因此我们不必考虑并发安全问题(即使在redis 6.x中 redis变为多线程也只是在读写IO中使用多线程,其执行命令仍然是单线程) 1.加锁 setnx lock volue //返回1代表lock这个键不存在, 阅读全文
posted @ 2021-05-02 21:35 刚刚好。 阅读(368) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示