随笔分类 -  [02]redis-memcached

摘要:Redis高可用之主从复制原理演进分析 在很久之前写过一篇 Redis 主从复制原理的简略分析,基本是一个笔记类文章。 一、什么是主从复制 1.1 什么是主从复制 主从复制,从名字可以看出,至少需要 2 台 Redis 服务器,一台叫主 Redis 服务器,一台叫从 Redis 服务器,也可以把他们 阅读全文
posted @ 2022-10-12 16:27 九卷 阅读(998) 评论(2) 推荐(0) 编辑
摘要:一、事件处理 1.1 什么是事件 Redis 为什么运行得比较快? 原因之一就是它的服务端处理程序用了事件驱动的处理方式。 那什么叫事件处理?就是把处理程序当成一个一个的事件处理。比如我前面文章:服务端高性能网络IO编程模型简析(https://www.cnblogs.com/jiujuan/p/1 阅读全文
posted @ 2022-09-23 17:38 九卷 阅读(388) 评论(0) 推荐(0) 编辑
摘要:intset介绍 intset 整数集合,当一个集合只有整数元素,且元素数量不多时,Redis 就会用整数集合作为集合键的底层实现。 redis> SADD numbers 1 3 5 7 9 (integer 5) redis> OBJECT ENCODING numbers (intset) 为 阅读全文
posted @ 2022-03-11 12:33 九卷 阅读(396) 评论(0) 推荐(0) 编辑
摘要:哈希函数简介 哈希函数(hash function),又叫散列函数,哈希算法。散列函数把数据“压缩”成摘要,有的也叫”指纹“,它使数据量变小且数据格式大小也固定。 哈希函数将数据打乱混合,重新创建一个散列值。 我们经常用到的对用户登录密码加密,比如 md5 算法,其实就是一个散列函数。 value 阅读全文
posted @ 2022-02-28 01:31 九卷 阅读(1596) 评论(0) 推荐(0) 编辑
摘要:链表list介绍 1. 链表list简介 链表(linked list)是一种基础数据结构,是一种线性表,但是不会按照线性表的顺序存储数据,而是在每一个节点里存到下一个节点的指针。 链表插入节点时是 O(1) 复杂度,比线性表顺序表快。 链表访问节点或访问特殊节点时是 O(N) 复杂度时间,顺序表相 阅读全文
posted @ 2022-01-24 14:25 九卷 阅读(143) 评论(0) 推荐(0) 编辑
摘要:Redis原理再学习:动态字符串sds 字符 字符就是英文里的一个一个英文字母,比如:a。中文里的单个汉字,比如:好。 字符串就是多个字母或多个汉字组成,比如字符串:redis,中文字符串:你好吗。 英文字符,如果按照 ASCII 码计算,一个字符占用 1 个字节。 中文字符的编码就比较复杂点,一个 阅读全文
posted @ 2022-01-20 22:10 九卷 阅读(276) 评论(0) 推荐(0) 编辑
摘要:Redis 缓存过期删除/淘汰策略分析 Redis 缓存删除 Redis 键过期删除,定期删除(主动)和惰性删除(被动) Redis 内存不足时,缓存淘汰策略 key 键过期删除 我们用 redis 作为缓存数据库,设置 k-v 数据的时候,可以给这条数据设置一个过期时间。比如,set 命令设置过期 阅读全文
posted @ 2022-01-05 00:58 九卷 阅读(858) 评论(0) 推荐(0) 编辑
摘要:跳跃表skiplist 简介 你一定比较好奇Redis里面的 sorted set 是怎么实现的,底层到底是什么?它的排序功能就是用到了这个skiplist-跳跃表。 什么是跳跃表? 跳跃表可以看做是链表的一个变种,一个多层顺序链表层级结构组成。它是一种顺序查找数据结构。 它是由William Pu 阅读全文
posted @ 2020-01-18 20:50 九卷 阅读(514) 评论(0) 推荐(0) 编辑
摘要:转自:七把刀 https://www.jianshu.com/p/427cf97d7951 网上分析Redis源码的文章挺多,如黄健宏的《Redis设计与实现》就很详尽的分析了redis源码,很赞。前不久看到Paul Smith的较早年份的大作《Redis:under the hood》,受益匪浅, 阅读全文
posted @ 2019-09-15 21:18 九卷 阅读(455) 评论(0) 推荐(0) 编辑
摘要:前面我介绍了 redis sentinel,既然有了sentinel,为什么还要一个cluster呢?因为随着业务量的增加,不可避免要对redis进行扩容,扩容方式一般由2种:1. 垂直扩容 2. 水平扩容垂直扩容:增加内存方式来增加整个缓存系统容量。比如从2G增加到4G水平扩容:通过增加节点的方式 阅读全文
posted @ 2019-02-20 23:12 九卷 阅读(875) 评论(0) 推荐(0) 编辑
摘要:一:为什么需要持久化 因为Redis是一个完全使用内存来存储数据的数据库,如果机器突然断电、服务器重启或进程挂掉了等等原因,那么存储在Redis中的数据就会丢失,从而引起业务的损失。为了保证存储在内存中的数据安全,Redis引入了持久化这个功能。 二:Redis持久化分类 在Redis中,分别为我们 阅读全文
posted @ 2018-10-16 20:30 九卷 阅读(1049) 评论(0) 推荐(1) 编辑
摘要:一:旧版复制 (2.8版以前) 1、分2个步骤:同步 和 命令传播 sync 同步 同步操作用于将服务器的数据库状态更新至主服务器当前所在的状态 command propagate 命令传播 当主服务器的数据库状态被修改,导致主从服务器状态不一致,让主从服务器的数据库状态回到一致状态 1.1 同步- 阅读全文
posted @ 2018-08-03 22:10 九卷 阅读(300) 评论(0) 推荐(0) 编辑
摘要:转自: https://yq.aliyun.com/articles/531067 摘要: 本文介绍了在使用阿里云Redis的开发规范,从键值设计、命令使用、客户端使用、相关工具等方面进行说明,通过本文的介绍可以减少使用Redis过程带来的问题。 一、键值设计 1. key名设计 (1)【建议】: 阅读全文
posted @ 2018-08-02 02:03 九卷 阅读(328) 评论(0) 推荐(0) 编辑
摘要:Redis配置详解 ##redis配置详解 # Redis configuration file example. # # Note that in order to read the configuration file, Redis must be # started with the file 阅读全文
posted @ 2018-06-24 00:33 九卷 阅读(325) 评论(0) 推荐(0) 编辑
摘要:简介 Redis 在实现键值对数据库时,并没有直接使用数据结构(简单动态字符串SDS,双端链表linkedlist,字典dict,压缩列表ziplist,整数集合intset,跳跃表skiplist等),而是基于已有的数据结构创建了一个对象系统,这个系统包含字符串对象、列表对象、哈希对象、集合对象和 阅读全文
posted @ 2018-06-23 01:32 九卷 阅读(1085) 评论(0) 推荐(0) 编辑
摘要:一:缓存遇到的一些问题 我们使用缓存的目的是为了提高查询的速度,给用户一个好的服务体验。但是缓存中一般会出现3个最常见的问题1. 缓存穿透 2. 缓存击穿 3. 缓存雪崩 二:概念说明 1. 什么是缓存穿透在高并发应用中,查询一个不存在的值时,这时候缓存没有命中,会导致大量请求直接打到了后端DB上, 阅读全文
posted @ 2018-06-15 01:25 九卷 阅读(395) 评论(0) 推荐(0) 编辑
摘要:为什么会有Aerospike? Redis是一个纯内存型数据库,性能上没有多大问题。 但这又带来一个新问题,内存是很贵的,所以全内存的存储成本非常昂贵。为了节省成本,我们需要把一部分不经常用到的数据存储到硬盘上, 但是又要求性能不能下降很多,这时候 Aerospike 数据库应运而生,它可以是内存 阅读全文
posted @ 2018-05-16 21:21 九卷 阅读(1494) 评论(0) 推荐(0) 编辑
摘要:转自:https://blog.csdn.net/u013256816/article/details/51146314 说到redis就会联想到memcached,反之亦然。了解过两者的同学有那么个大致的印象:redis与memcached相比,比仅支持简单的key-value数据类型,同时还提供 阅读全文
posted @ 2016-08-17 21:10 九卷 阅读(228) 评论(0) 推荐(0) 编辑
摘要:找到了一份redis的中文翻译文档,觉得适合学习和查阅。这份文档翻译的真的很良心啊,他是《Redis 设计与实现》一书的作者黄健宏翻译的。 地址:http://redisdoc.com/index.html# 内容如下: Redis 命令参考 本文档是 Redis Command Reference 阅读全文
posted @ 2016-08-11 20:31 九卷 阅读(596) 评论(0) 推荐(0) 编辑
摘要:一:说明 前面我们已经配置了redis的主从配置(链接),这种主从架构有一个问题,当主master出现了故障了,怎么切换到从服务器上呢? 第一种:手动切换, 这种肯定会造成比较长一段时间的用户不能访问redis了,那有没有更好的办法呢? 第二种:redis官方的 redis-sentinel 哨兵高 阅读全文
posted @ 2016-08-10 20:17 九卷 阅读(1379) 评论(0) 推荐(0) 编辑