![](https://img-blog.csdnimg.cn/20190918140145169.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Redis
Redis
bujidexinq
我是一头老黄牛2010.
展开
-
分析redis key大小的几种方法
当redis被用作缓存时,有时我们希望了解key的大小分布,或者想知道哪些key占的空间比较大。本文提供了几种方法。 一. bigKeys 这是redis-cli自带的一个命令。对整个redis进行扫描,寻找较大的key。例: redis-cli -h b.redis -p 1959 --bigkeys 输出 # Scanning the entire keyspace to find biggest keys as well as # average sizes per key type.转载 2020-05-12 12:39:52 · 1293 阅读 · 0 评论 -
Redis设计与实现(一~五整合版)
一 前言 项目中用到了redis,但用到的都是最最基本的功能,比如简单的slave机制,数据结构只使用了字符串。但是一直听说redis是一个很牛的开源项目,很多公司都在用。于是我就比较奇怪,这玩意不就和 memcache 差不多吗?仅仅是因为memcache是内存级别的,没有持久化功能。而redis支持持久化?难道这就是它的必杀技? 带着这个疑问,我在网上搜了一圈。发现有个叫做huangz的...转载 2020-04-25 13:51:38 · 671 阅读 · 0 评论 -
redis——为什么选择了跳表而不是红黑树、二叉树
我们知道,节点插入时随机出一个层数,仅仅依靠一个简单的随机数操作而构建出来的多层链表结构,能保证它有一个良好的查找性能吗?为了回答这个疑问,我们需要分析skiplist的统计性能。 在分析之前,我们还需要着重指出的是,执行插入操作时计算随机数的过程,是一个很关键的过程,它对skiplist的统计特性有着很重要的影响。这并不是一个普通的服从均匀分布的随机数,它的计算过程如下: 首先,每个节点肯定...原创 2020-04-22 10:32:10 · 1013 阅读 · 0 评论 -
如何限流
限制单位时间的调用量 AtomicLong#incrementAndGet() 分布式限流 很多时候我需要有一个全局的限速,例如用户注册时,让用户输入手机验证码,为了防止短信接口不被恶意频繁调用,一般会限制用户每分钟获取验证码频率,例如一分钟不能超过5次。 此时,我们可以通过Redis的来实现,伪代码如下: phoneNum = "186xxxxxx"; key = "verifyCod...原创 2020-03-20 11:55:09 · 204 阅读 · 0 评论 -
【Redis】Redis面试题
Redis 面试题 1、什么是 Redis?. 2、Redis 的数据类型? 3、使用 Redis 有哪些好处? 4、Redis 相比 Memcached 有哪些优势? 5、Memcache 与 Redis 的区别都有哪些? 6、Redis 是单进程单线程的? 7、一个字符串类型的值能存储最大容量是多少? 8、Redis 的持久化机制是什么?各自的优缺点? 9、Redis 常见性...原创 2020-03-20 11:54:26 · 190 阅读 · 0 评论 -
Redis底层数据结构
Redis底层数据结构类型 简单动态字符串(simple dynamic string)SDS Redis 没有直接使用C语言传统的字符串表示,而是自己构建了一种名为简单动态字符串(simple dynamic string SDS)的抽象类型,并将SDS用作Redis 的默认字符串表示; 除了用来保存字符串以外,SDS还被用作缓冲区(buffer)AOF(持久化)模块中的AOF缓冲区 ...原创 2020-03-20 11:48:09 · 91 阅读 · 0 评论 -
缓存穿透、并发和雪崩那些事
0 题记 缓存穿透、缓存并发和缓存雪崩是常见的由于并发量大而导致的缓存问题,本文讲解其产生原因和解决方案。 缓存穿透通常是由恶意攻击或者无意造成的;缓存并发是由设计不足造成的;缓存雪崩是由缓存同时失效造成的,三种问题都比较典型,也是难以防范和解决的。本节给出通用的解决方案,以供在缓存设计的过程中参考和使用。 1 缓存穿透 缓存穿透指的是使用不存在的key进行大量的高并发查询,这导致缓存无法...原创 2020-03-18 20:15:03 · 92 阅读 · 0 评论 -
php模拟面试——redis篇
set、setx、setex 命令区别? set命令,将key-value 设置到数据库。若key已经设置,则set会用新值覆盖旧值,不管原value是何种类型,如果在设置时不指定EX或PX参数,set命令会清除原有超时时间。 setx命令,将key-value设置到数据库,并且指定key的超时秒数。 setnx命令,将key-value设置到数据库,当且仅当key不存在时。 如何找red...转载 2020-02-25 23:39:29 · 1187 阅读 · 0 评论 -
我们为什么要用Redis
http://ifeve.com/%e6%88%91%e4%bb%ac%e4%b8%ba%e4%bb%80%e4%b9%88%e8%a6%81%e7%94%a8redis/#more-43560 我们为什么要用Redis 最近阅读了《 Redis 开发与运维》,非常不错。这里对书中的知识整理一下,方便自己回顾 Redis 的整个体系,来对相关知识点查漏补缺。 按照五点把书中的内容进行一下整理...转载 2020-02-16 16:23:43 · 100 阅读 · 0 评论 -
Redis几个重要的健康指标
存活情况 所有指标中最重要的当然是检查redis是否还活着,可以通过命令PING的响应是否是PONG来判断。 连接数 连接的客户端数量,可通过命令src/redis-cli info Clients | grep connected_clients得到,这个值跟使用redis的服务的连接池配置关系比较大,所以在监控这个字段的值时需要注意。另外这个值也不能太大,建议不要超过5000,如果太大可能是...转载 2019-09-13 19:22:34 · 457 阅读 · 0 评论 -
Redis详解(四)------ redis的底层数据结构
目录 1、演示数据类型的实现 2、简单动态字符串 3、链表 4、字典 5、跳跃表 6、整数集合 7、压缩列表 8、总结 上一篇博客我们介绍了 redis的五大数据类型详细用法,但是在 Redis 中,这几种数据类型底层是由什么数据结构构造的呢?本篇博客我们就来详细介绍Redis中五大数据类型的底层实现。 回到顶部 1、演示数据类型的实现 上篇博客我们在介绍 ke...转载 2019-01-15 17:06:00 · 122 阅读 · 0 评论