随笔分类 - Nosql-redis
摘要:0x0A.谈谈集群版Redis和Gossip协议 集群版的Redis听起来很高大上,确实相比单实例一主一从或者一主多从模式来说复杂了许多,互联网的架构总是随着业务的发展不断演进的。A.1 关于集群的一些基础单实例Redis架构 最开始的一主N从加上读写分离,Redis作为缓存单实例貌似也还不错,并且
阅读全文
摘要:基础: 25、Redis中的管道有什么用?一次请求/响应服务器能实现处理新的请求即使旧的请求还未被响应。这样就可以将多个命令发送到服务器,而不用等待回复,最后在一个步骤中读取该答复。 这就是管道(pipelining),是一种几十年来广泛使用的技术。例如许多POP3协议已经实现支持这个功能,大大加快
阅读全文
摘要:过期策略介绍 Redis是key-value数据库,可以设置Redis中缓存的key的过期时间。Redis的过期策略就是指当Redis中缓存的key过期了,Redis如何处理。 定时过期: 每个设置过期时间的key都需要创建一个定时器,到过期时间就会立即清除。 该策略可以立即清除过期的数据,对内存很
阅读全文
摘要:参考: Redis 10亿数据量只需要100MB内存,为什么这么牛? 基于内存和 Redis 的两级 Java 缓存框架 【94期】面试官:熟悉Redis吗,项目中你是如何对Redis内存进行优化的 败家玩意儿!Redis 竟然浪费了这么多内存! Redis内存满了怎么办... 别再问我Redis内
阅读全文
摘要:面试考点:如何访问redis中的海量数据?避免事故产生 如何访问 Redis 中的海量数据,服务才不会挂掉? 遍历大数据量: 直接用了keys user_token*方式进行查询,事故就此发生了:导致Redis不可用,假死。 分析原因 我们线上的登录用户有几百万,数据量比较多;keys算法是遍历算法
阅读全文
摘要:你懂她,可惜你不懂我「LRU 」- Memcached- 第286篇 缓存算法FIFO、LFU、LRU 为什么Redis要比Memcached更火?
阅读全文
摘要:参考: 牛逼!Redis 的字符串是这样实现的… Redis中五大数据结构的底层实现 string的底层是怎么实现的 redis 跳跃表 Redis 只在两个地方用到了跳跃表,一个是实现有序集合键,另外一个是在集群节点中用作内部数据结构。 https://www.cnblogs.com/hunter
阅读全文
摘要:参考: 缓存算法FIFO、LFU、LRU LRU 如果一个数据在最近一段时间没有被访问到,那么在将来它被访问的可能性也很小。也就是说,当限定的空间已存满数据时,应当把最久没有被访问到的数据淘汰。 而用什么数据结构来实现LRU算法呢?可能大多数人都会想到: 用一个数组来存储数据,给每一个数据项标记一个
阅读全文
摘要:参考: https://blog.csdn.net/codertnt/article/details/80005005 https://www.cnblogs.com/myseries/p/10956835.html 一致性has原理 为Redis集群使用Hash 可想而知,如果我们使用Hash的方
阅读全文
摘要:参考: 基于redis分布式锁实现“秒杀”(含代码) SpringBoot+Redis分布式锁:模拟抢单 Redlock(redis分布式锁)原理分析 基于redis的分布式锁的分析与实践 Redlock分布式锁 如何做可靠的分布式锁,Redlock真的可行么 基于redis分布式锁实现“秒杀”(含
阅读全文
摘要:参考: Redis中的发布订阅和事务 发布订阅 redis的发布订阅系统有点类似于我们生活中的电台,电台可以在某一个频率上发送广播,而我们可以接收任何一个频率的广播,Android中的broadcast也和这类似。 订阅消息的方式如下: 127.0.0.1:6379> SUBSCRIBE c1 c2
阅读全文
摘要:参考: 你的Redis怎么持久化的 Redis快照持久化 Redis之AOF持久化 Redis 的持久化有哪几种方式?不同的持久化机制都有什么优缺点?持久化机制具体底层是如何实现的? Redis AOF 持久化详解 面试造飞机系列:面对Redis持久化连环Call,你还顶得住吗? 10分钟彻底理解R
阅读全文
摘要:大年夜排查bug:竟然是同事把Redis用成这鬼样子,坑了我 问了好几个大佬,竟然都不知道Redis为什么默认16个数据库? 瞬间几千次的重复提交,我用 SpringBoot+Redis 扛住了 如何改变Redis用不好的误区 Spring Cache 操作 Redis 实现数据缓存(下) Spri
阅读全文
摘要:缓存雪崩 如果我们的缓存挂掉了,这意味着我们的全部请求都跑去数据库了。 我们都知道Redis不可能把所有的数据都缓存起来(内存昂贵且有限),所以Redis需要对数据设置过期时间,并采用的是惰性删除+定期删除两种策略对过期键删除。 如果缓存数据设置的过期时间是相同的,并且Redis恰好将这部分数据全部
阅读全文
摘要:散列 很多时候,散列就像一个微缩版的redis,在本文中,小伙伴们对看到的许多散列命令都会有似曾相识的感觉。 hset HSET命令可以用来设置key指定的哈希集中指定字段的值,如下: 127.0.0.1:6379> HSET k1 h1 v1 (integer) 1 View Code hget
阅读全文
摘要:五大数据类型介绍 redis中的数据都是以key/value的形式存储的,五大数据类型主要是指value的数据类型,包含如下五种: STRING STRING是redis中最基本的数据类型,redis中的STRING类型是二进制安全的,即它可以包含任何数据, 比如一个序列化的对象甚至一个jpg图片,
阅读全文
摘要:列表 列表是Redis中另外一种数据类型。下面我们来看看列表中一些基本的操作命令。 lpush 将一个或多个值value插入到列表key的表头,如果有多个value值,那么各个value值按从左到右的顺序依次插入到表头,如下: 127.0.0.1:6379> LPUSH k1 v1 v2 v3 (i
阅读全文
摘要:这里讲的类型主要是指value的·类型 STRING STRING是redis中最基本的数据类型,redis中的STRING类型是二进制安全的, 即它可以包含任何数据,比如一个序列化的对象甚至一个jpg图片,要注意的是redis中的字符串大小上限是512M。 STRING APPEND 使用APPE
阅读全文
摘要:基础操作 redis-server redis.conf命令启动redis redis-cli命令进入到控制台中 正常关闭redis # root @ localhost in /usr/local/redis/redis-5.0.5 [18:53:31] $ redis-cli -p 6379 s
阅读全文