redis
文章平均质量分 91
Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
Young丶
这个作者很懒,什么都没留下…
展开
-
得物面试:Redis 内存碎片是什么?如何清理?
你可以将内存碎片简单地理解为那些不可用的空闲内存。举个例子:操作系统为你分配了 32 字节的连续内存空间,而你存储数据实际只需要使用 24 字节内存空间,那这多余出来的 8 字节内存空间如果后续没办法再被分配存储其他数据的话,就可以被称为内存碎片。Redis 内存碎片虽然不会影响 Redis 性能,但是会增加内存消耗。原创 2024-04-25 09:01:52 · 432 阅读 · 0 评论 -
五分钟讲透 Redis Lua脚本,以及Redis cluster集群模式下的 command keys must in same slot 解决方案 redis hash tag
redis集群版的lua脚本,可以通过key的部分字符串hash来解决redis集群版的分布式是会根据KEY进行hash取模然后打到不同的slot,这种思想是典型的分而治之。分治,分流,降级。以上是关于lua在redis集群中的解决方案-- command keys must in same slot的主要内容。原创 2023-05-11 09:00:00 · 59782 阅读 · 0 评论 -
源码级别讲解 redis 底层数据结构
Redis作为Key-Value存储系统,数据结构如下:Redis没有表的概念,Redis实例所对应的db以编号区分,db本身就是key的命名空间。比如:user:1000作为key值,表示在user这个命名空间下id为1000的元素,类似于user表的id=1000的 行。原创 2023-05-10 07:45:00 · 49799 阅读 · 0 评论 -
你的 Redis为什么变慢了?一文讲透Redis性能优化如何做
对 Redis 进行基准性能测试例如,我的机器配置比较低,当延迟为 2ms 时,我就认为 Redis 变慢了,但是如果你的硬件配置比较高,那么在你的运行环境下,可能延迟是 0.5ms 时就可以认为 Redis 变慢了。所以,你只有了解了你的 Redis 在生产环境服务器上的基准性能,才能进一步评估,当其延迟达到什么程度时,才认为 Redis 确实变慢了。为了避免业务服务器到 Redis 服务器之间的网络延迟,你需要直接在 Redis 服务器上测试实例的响应延迟情况。原创 2023-04-28 13:25:37 · 42785 阅读 · 0 评论 -
Redis大key多key拆分方案
使用bitmap或布隆过滤器的场景,往往是数据量极大的情况,在这种情况下,Bitmap和布隆过滤器使用空间也比较大,比如用于公司userid匹配的布隆过滤器,就需要512MB的大小,这对redis来说是绝对的大value了。 一:key 本身就有很强的相关性,比如多个key 代表一个对象,每个key是对象的一个属性,这种可直接按照特定对象的特征来设置一个新Key——Hash结构, 原先的key则作为这个新Hash 的field。这样算出三个key 的桶分别是 1 , 2, 2。原创 2022-10-25 09:00:00 · 22718 阅读 · 0 评论 -
3大问题 —— Redis缓存异常及处理方案总结
Redis作为一个高性能的内存中的key-value数据结构存储系统,在我们日常开发中广泛应用于缓存、计数器、消息队列、排行榜等场景中,尤其是作为最常用的缓存方式,在提高数据查询效率、保护数据库等方面起到了不可磨灭的作用,但实际应用中,可能会出现一些Redis缓存异常的情况,本文主要对Redis缓存异常及处理方案进行了总结。Redis是一个完全开源的、遵守BSD协议的、高性能的key-value数据结构存储系统,它支持数据的持久化,可以将内存中的数据保存在磁盘中,而且不仅仅支持简单的key-value类型的原创 2022-09-14 10:08:44 · 28067 阅读 · 0 评论 -
最强分布式锁工具:Redisson
Redisson整体实现分布式加解锁流程的实现稍显复杂,作者Rui Gu对Netty和JUC、Redis研究深入,利用了很多高级特性和语义,值得深入学习,本次介绍也只是单机Redis下锁实现,Redisson也提供了多机情况下的联锁(MultiLock)和官方推荐的红锁(RedLock),所以,当你真的需要分布式锁时,不妨先来Redisson里找找。...原创 2022-08-03 10:27:02 · 19651 阅读 · 0 评论 -
阿里云官方 Redis 开发规范
在阿里云社区看到一份阿里云官方Redis开发规范,是一位阿里云数据库技术专家(Redis方向)写的,感觉有很多地方值得参考。我对原文排版和内容进行了简单完善,这里分享一下。以业务名(或数据库名)为前缀(防止key冲突),用冒号分隔,比如业务名表名id反例包含空格、换行、单双引号以及其他转义字符string类型控制在10KB以内,hash、list、set、zset元素个数不要超过5000。反例一个包含200万个元素的list。[1]和[2]。例如。...原创 2022-08-01 06:30:00 · 17797 阅读 · 3 评论 -
Redis 排查大 key 的3种方法,优化必备
Redis 实践总结(仅供参考):合理的 Key 中 Value 的字节大小,推荐小于 10 KB。过大的 Value 会引发数据倾斜、热点Key、实例流量或 CPU 性能被占满等问题,应从设计源头上避免此类问题带来的性能影响。那么 value Bytes > 10 kb 可以作为判断 大 key 的一个参考值。 是 redis 自带的命令,对整个 Key 进行扫描,统计 string,list,set,zset,hash 这几个常见数据类型中每种类型里的最大的 key。string 类型统计的是 valu原创 2022-07-04 16:30:14 · 14208 阅读 · 0 评论 -
聊聊电商系统中红包活动设计
电商的营销玩法可谓花样百出,今天跟大家聊聊红包雨活动是如何设计技术方案的。红包雨是一个典型的高并发场景,短时间内有海量请求访问服务端,技术团队为了让系统运行顺畅,抢红包采用了基于 Redis + Lua 脚本的设计方案。我们分析下抢红包的整体流程 :抢红包有如下规则:如下图,我们设计三种数据类型:队列元素 json 数据格式 :用户红包领取记录列表;队列元素 json 数据格式:用户红包防重 Hash 表;抢红包 Redis 操作流程 :抢红包的过程 ,需要重点关注如下几点 :Redis 支转载 2022-07-02 10:05:36 · 11884 阅读 · 0 评论 -
Redis使用Lua脚本简介
1.1 EVAL script numkeys key [key …] arg [arg …]numkeys 是key的个数,后边接着写key1 key2… val1 val2…,举例1.2 SCRIPT LOAD script把脚本加载到脚本缓存中,返回SHA1校验和。但不会立马执行,举例1.3 EVALSHA sha1 numkeys key [key …] arg [arg …]根据缓存码执行脚本内容。举例1.4 SCRIPT EXISTS script [script …]通过sha1校验和判原创 2022-07-03 00:30:00 · 11953 阅读 · 0 评论 -
Redis 生产高可用架构选型解决方案
Redis 是一个开源的使用 ANSI C 语言编写 key-value 存储系统,是跨平台的非关系型数据库 。 性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s 。正式上为了防止单点故障,必须要使用分布式架构,不仅可提高redis的高可用,也可以提示redis的读写能力。Redis主从架构单机的 Redis,能够承载的 QPS 大概就在上万到几万不等。对于缓存来说,一般都是用来支撑读高并发的。因此架构做成主从(master-slave)架构,一主多从,主负责写,并且原创 2022-03-31 14:45:00 · 1726 阅读 · 0 评论 -
Redis 优化最佳实践
这篇文章我们就来总结一下,在使用Redis时的最佳实践方式,主要包含两个层面:业务层面、运维层面。由于我之前写过很多UGC后端服务,在大量场景下用到了Redis,这个过程中也踩过很多坑,所以在使用过程中也总结了一套合理的使用方法。后来做基础架构,开发Codis、Redis相关的中间件,在这个阶段关注领域从使用层面下沉到Redis的开发和运维,更多聚焦在Redis的内部实现和运维过程中产生的各种问题,在这块也积累了一些经验。下面就针对这两块,分享一下我认为比较合理的Redis使用和运维方法,不一定最全面转载 2022-03-29 11:45:03 · 1630 阅读 · 0 评论 -
超详细的 Redis Cluster 官方集群搭建指南,适用于 redis 5.x, 6.x
今天从 0 开始搭建 Redis Cluster 官方集群,解决搭建过程中遇到的问题,超详细。旧版本使用 redis-trib.rb ruby 脚本安装集群,5.0版本redis-cli 已经自带 创建集群功能了安装redis库$ yum install redis搭建集群1、创建集群目录首先进入一个新目录,创建六个以端口号为名字的子目录。$ mkdir redis-cluster$ cd redis-cluster$ mkdir 9001 9002 9003 9004 9005 9原创 2022-03-29 11:35:26 · 2167 阅读 · 0 评论 -
【带你重拾Redis】Redis cluster集群模式的原理
什么是redis clusterredis从3.0开始支持集群功能。redis集群采用无中心节点方式实现,无需proxy代理,客户端直接与redis集群的每个节点连接,根据同样的hash算法计算出key对应的slot,然后直接在slot对应的redis节点上执行命令。在redis看来,响应时间是最苛刻的条件,增加一层带来的开销是redis不能接受的。因此,redis实现了客户端对节点的直接访问,为了去中心化,节点之间通过gossip协议交换互相的状态,以及探测新加入的节点信息。redis集群支持动态加入节原创 2022-03-29 10:16:44 · 3388 阅读 · 0 评论 -
轻松易懂的缓存雪崩、穿透、击穿以及解决方案
缓存雪崩先来看下雪崩的过程所谓缓存雪崩,指的是缓存数据同一时间大量失效,所有的请求全打到数据库,导致数据库在巨大压力下挂掉。比如在双十一的时候,用户都会打开淘宝买东西,有的人是真的有需要买的,有的人就是凑个热闹,不管怎么样,这时候首页的压力就非常大了,为了满足所有用户都可以访问到数据,阿里的程序员们将首页数据缓存到redis里,并设置redis失效时间是12小时。我们知道redis是内存数据库,那访问速度,杠杠的啊。数据缓存后用户们买的很开心,程序员们也很开心,系统都还好着呢……慢慢的12个小原创 2022-03-25 17:39:29 · 3497 阅读 · 0 评论 -
Redis的优势和特点
什么是redisRemote DIctionary Server(Redis) 是一个由 Salvatore Sanfilippo 写的 key-value 存储系统,是跨平台的非关系型数据库。Redis 是一个开源的使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于内存、分布式、可选持久性的键值对(Key-Value)存储数据库,并提供多种语言的 API。Redis 通常被称为数据结构服务器,因为值(value)可以是字符串(String)、哈希(Hash)、列表(list)、集合(原创 2022-03-22 11:43:23 · 13928 阅读 · 0 评论 -
Redis 16 个常见使用场景
这个场景最开始是是一篇介绍微博Redis应用的PPT中看到的,其中提到微博的Redis主要是用在在计数和好友关系两方面上,当时对好友关系方面的用法不太了解,后来看到《Redis设计与实现》中介绍到作者最开始去使用Redis便是希望能通过。利用set结构的无序性,通过Spop(RedisSpop命令用于移除集合中的指定key的一个或多个随机元素,移除后会返回移除的元素。在Redis的数据结构中,在最新的评论边上我们有一个“显示全部”的链接,点击后就可以获得更多的评论。...原创 2022-03-21 17:27:16 · 62619 阅读 · 9 评论 -
面试不怂之redis与缓存大全
基础篇问题:什么是redis?Redis是现在最受欢迎的NoSQL数据库之一,Redis是一个使用ANSI C编写的开源、包含多种数据结构、支持网络、基于内存、可选持久性的键值对存储数据库,其具备如下特性:基于内存运行,性能高效支持分布式,理论上可以无限扩展key-value存储系统开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API问题:redis可以用在哪些业务上?答:redis可以做很多事情,比如转载 2022-03-17 18:18:19 · 2128 阅读 · 0 评论 -
Redis6.0新版本开始引入多线程,到底改善了什么
Redis的性能瓶颈并不在CPU上,而是在内存和网络上。因此6.0发布的多线程并未将事件处理改成多线程,而是在I/O上,此外,如果把事件处理改成多线程,不但会导致锁竞争,而且会有频繁的上下文切换,即使用分段锁来减少竞争,对Redis内核也会有较大改动,性能也不一定有明显提升。Redis作为一个基于内存的缓存系统,一直以高性能著称,因没有上下文切换以及无锁操作,即使在单线程处理情况下,读速度仍可达到11万次/s,写速度达到8.1万次/s。但是,单线程的设计也给Redis带来一些问题:只能使用CPU一.原创 2022-03-14 16:21:33 · 2060 阅读 · 0 评论 -
java分布式锁终极解决方案之 redisson
目前有很多项目还在使用redis的 setNx 充当分布式锁,然而这个锁是有问题的,redisson是java支持redis的redlock的唯一实现,。目前支持集群模式,云托管模式,单Redis节点模式,哨兵模式,主从模式 配置. 支持 可重入锁,公平锁,联锁,红锁,读写锁 锁定模式介绍我们为什么需要redisson?redisson目前是redis官方唯一推荐的java版的分布式锁,他支持 redlock.具体请查看 官方文档使用原生redis setNx 会有很多坑,具体我已经罗列再这里了.原创 2021-12-22 13:50:51 · 5259 阅读 · 0 评论 -
聊聊redis分布式锁的8大坑
在分布式系统中,由于redis分布式锁相对于更简单和高效,成为了分布式锁的首先,被我们用到了很多实际业务场景当中。但不是说用了redis分布式锁,就可以高枕无忧了,如果没有用好或者用对,也会引来一些意想不到的问题。今天我们就一起聊聊redis分布式锁的一些坑,给有需要的朋友一个参考。1 非原子操作使用redis的分布式锁,我们首先想到的可能是setNx命令。if (jedis.setnx(lockKey, val) == 1) { jedis.expire(lockKey, timeout原创 2021-11-19 15:10:43 · 4027 阅读 · 0 评论 -
redis面试全家桶
一.Redis简介Redis 是完全开源免费的,是一个高性能的key-value类型的内存数据库。整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据flush到硬盘上进行保存。因为是纯内存操作,Redis的性能非常出色,每秒可以处理超过 10万次读写操作,是已知性能最快的Key-Value DB。Redis的出色之处不仅仅是性能,Redis最大的魅力是支持保存多种数据结构,此外单个value的最大限制是1GB,因此Redis可以用来实现很多有用的功能,比方说用List来做FIFO双向链表原创 2021-05-06 19:40:12 · 291 阅读 · 0 评论 -
springboot配置Redis哨兵主从服务 以及 Redis 集群
redis哨兵集群配置Sentinel(哨兵)是Redis 的高可用性解决方案:由一个或多个Sentinel 实例 组成的Sentinel 系统可以监视任意多个主服务器,以及这些主服务器属下的所有从服务器,并在被监视的主服务器进入下线状态时,自动将下线主服务器属下的某个从服务器升级为新的主服务器。具体原理和配置参考《【带你重拾Redis】Redis 哨兵集群实现高可用》springboot配置Redis主从服务接下来学了一下springboot配置redis的主从服务器。根据一主二从三哨兵的原则来搭建原创 2021-02-25 11:35:54 · 11284 阅读 · 4 评论 -
【带你重拾Redis】Redis 哨兵集群实现高可用
Redis 哨兵集群实现高可用哨兵的介绍sentinel,中文名是哨兵。哨兵是 Redis 集群架构中非常重要的一个组件,主要有以下功能:集群监控:负责监控 Redis master 和 slave 进程是否正常工作。消息通知:如果某个 Redis 实例有故障,那么哨兵负责发送消息作为报警通知给管理员。故障转移:如果 master node 挂掉了,会自动转移到 slave node 上。配置中心:如果故障转移发生了,通知 client 客户端新的 master 地址。哨兵用于实现 Red原创 2021-02-25 11:05:41 · 1110 阅读 · 0 评论 -
【带你重拾Redis】Redis 主从架构
Redis 主从架构单机的 Redis,能够承载的 QPS 大概就在上万到几万不等。对于缓存来说,一般都是用来支撑读高并发的。因此架构做成主从(master-slave)架构,一主多从,主负责写,并且将数据复制到其它的 slave 节点,从节点负责读。所有的读请求全部走从节点。这样也可以很轻松实现水平扩容,支撑读高并发。Redis replication -> 主从架构 -> 读写分离 -> 水平扩容支撑读高并发Redis replication 的核心机制Redis 采用异步原创 2021-02-24 18:48:59 · 697 阅读 · 0 评论 -
【带你重拾Redis】Redis持久化
AOF策略是把已经执行过的命令以文本的方式追加到AOF文件的末尾,以此达到记录数据库状态的目的。bgsave #在Redis客户端执行该命令后会在Redis所在目录创建dump.rdb文件,将该文件保存好,需要恢复数据的时候将dump.rdb移动到Redis所在目录后启动服务。2、当Redis服务启动进行数据恢复时,如果rdb和aof文件都存在,会优先使用aof文件来恢复数据(因为aof数据比较全)RDB是Redis默认的持久化策略,这种策略是把数据库的快照以二进制形式的副本保存在磁盘上。原创 2021-02-20 22:45:10 · 688 阅读 · 0 评论 -
【带你重拾Redis】Redis过期策略 和 内存淘汰策略(key回收)
Redis缓存淘汰策略(key回收)当Redis使用的内存超出物理内存限制时, Redis的内存会和Swap(虚拟内存)频繁切换,造成Redis性能的急剧下降。 为了不让Redis内存占用超过物理内存占用,可以给Redis配置一个 maxmemory 的值, 当Redis占用内存超过了这个maxamemory的值, 那么Redis将启用缓存淘汰策略来删除内存中的key, 缓存淘汰策略可以通过 maxmemory-policy 设置。缓存淘汰策略主要分为3类:noevictionvolatilea原创 2021-02-20 22:12:28 · 951 阅读 · 0 评论 -
【带你重拾Redis】Redis事务
Redis事务Redis的事务主要依赖于WATCH ,UNWATCH,MULTI , EXEC, DISCARD等命令。 其中 MULTI , EXEC , DISCARD 分别对应关系型数据库的 BEGIN,COMMIT,ROLLBACK操作。Redis事务执行过程客户端使用MULTI命令开启事务,此时用户就可以开始发出要执行的命令。 **如果命令为WATCH/MULTI/EXEC/DISCARD这四个中的任意一个, 那么会被直接执行,**因为它们属于事务操作。当执行DISCARD的时候,会清原创 2021-02-20 22:08:18 · 617 阅读 · 0 评论 -
【带你重拾Redis】Redis数据结构及使用场景
Redis数据结构Redis有着非常丰富的数据结构,这些数据结构可以满足非常多的应用场景, 如果对这些数据结构有一个比较清晰的认知,使用Redis也会更加得心应手。Redis主要支持以下数据结构:String(字符串)List(双端链表)Hash(Hash字典)Set(无序集合)Sorted Set(有序集合)数据结构描述实现String可以存储字符串,整型和浮点型等类型的数据。适合于简单的K-V数据场景。Redis并没有使用字符数组来实现这一数据类型,而是自己原创 2021-02-20 21:27:47 · 688 阅读 · 0 评论 -
【带你重拾Redis】Redis常见知识点
什么是Redis?Redis是一个使用ANSI C语言编写,遵守BSD协议规范的开源的K-V类型的NoSQL数据库服务器。 Redis是当前最流行的K-V类型的NoSQL数据库之一,在通往系统架构的方向,它是我们不得不学习的知识。Redis官网Redis常见知识点Redis优缺点Redis的优点:性能高: 用c语言编写的应用我就没见过慢的_。丰富的数据结构: 总体上来说Redis是以K-V形式存储数据,但是细分来说, 它支持STRING,HASH,LIST,SET,SORTED_SET,H原创 2021-02-20 21:25:27 · 2599 阅读 · 1 评论 -
分布式缓存灵魂十连,你能坚持几个?
“今天无聊来撩一下分布式缓存,希望你们喜欢~目录前言目前工作中用到的分布式缓存技术有redis和memcached两种,缓存的目的是为了在高并发系统中有效降低DB的压力,但是在使用的时候可能会因为缓存结构设计不当造成一些问题,这里会把可能遇到的坑整理出来,方便日后查找。一. 常用的两种缓存技术的服务端特点1. Memcache服务端Memcache(下面简称mc)服务端是没有集群概念的,所有的存储分发全部交由mc client去做,我这里使用的是xmemcached,这个客户端支持多种哈.原创 2021-01-14 12:02:39 · 1167 阅读 · 0 评论 -
Redis为什么又引入了多线程?单线程不香了?
相信你一定不止一次见过Redis是单线程模式,不过说实话那只是个老版本,这个问题是一位老哥的大厂面试题,跟我分享了一下。想着自己就知道redis6.0以前一直都是单线程,到了6的版本才加入了多线程,还不是很清楚,在多方打听并且搜索之下总结了这篇文章。一、问题概述 Redis 6.0 之后的版本抛弃了单线程模型这一设计,原本使用单线程运行的 Redis 也开始选择性使用多线程模型,乍一看Redis的作者这么牛,也逃不过“真香定律”,仔细想想,这个问题其实可以拆分,拆分为两个主要的问题:(1)原创 2020-11-24 10:51:37 · 1677 阅读 · 0 评论 -
今天带你们走进缓存的雪崩、击穿、穿透基本概念
在互联网时代,大流量、海量数据、高并发是每个企业都渴望又害怕的名词,渴望是因为它们代表着提供的服务用户愿意买单、有价值;害怕是因为一旦用户全上来了,系统不能正常为用户提供服务,让用户失望,最终选择离开。仅靠着超高配置的服务器资源,还是很难支撑高并发的场景。因此我们需要缓存。缓存在计算机的世界里无处不在,在CPU中有一级二级三级缓存,在Linux操作心态中有TLB加速虚拟地址和物理地址的转化,在应用服务中有redis数据库进行数据缓存,在浏览器或app中有本地缓存。可以说缓存是非常重要了,有了它,整个世界仿原创 2020-10-24 15:02:22 · 524 阅读 · 0 评论 -
Redis最佳实践:业务层面和运维层面优化
在上一篇文章:Redis为什么变慢了?常见延迟问题定位与分析,主要分析了Redis常见的导致变慢的场景以及问题定位和分析,主要是由业务使用不合理和运维不当导致的。 我们在了解了导致Redis变慢的原因之后,针对性地优化,就可以让Redis稳定发挥出更高性能。 这篇文章我们就来总结一下,在使用Redis时的最佳实践方式,主要包含两个层面:业务层面、运维层面。 由于我之前写过很多UGC后端服务,在大量场景下用到了Redis,这个过程中也踩过很多坑,所以在使用过程中也总结了一套合理的使用方法。原创 2020-10-20 10:43:14 · 412 阅读 · 0 评论 -
五大点,搞懂单线程的Redis到底快在哪里
目录前言一.开发语言二.纯内存访问三.数据结构简单四.单线程五.非阻塞多路I/O复用机制前言Redis是一种基于键值对(Key-Value)的NoSQL数据库,Redis的Value可以由String,hash,list,set,zset,Bitmaps,HyperLogLog等多种数据结构和算法组成。Redis还提供了键过期,发布订阅,事务,Lua脚本,哨兵,Cluster等功能。Redis执行命令的速度非常快,根据官方给的性能可以达到10w+qps。那么本文主要介绍到底Redis快原创 2020-10-13 16:53:21 · 647 阅读 · 0 评论 -
高并发下的redis击穿,你需要了解下布隆过滤器
在高并发读的情况下缓存是不可少的。关于高并发缓存方面大小可以参考博主这篇文章好了接下来进入正题:大家看下上方的这幅图,用户可能进行了一次条件错误的查询,这时候 redis 是不存在的,按照常规流程就是去数据库找了,可是这是一次错误的条件查询,数据库当然也不会存在,也不会往 redis 里面写值,返回给用户一个空,这样的操作一次两次还好,可是次数多了还了得,我放 redis 本来就是为了挡一挡,减轻数据库的压力,现在 redis 变成了形同虚设,每次还是去数据库查找了,这个就叫做缓存穿透,相当于 red原创 2020-07-02 14:12:25 · 1452 阅读 · 0 评论 -
Redis进阶实战用法深剖析
从海量Key里查询出某一个固定前缀的Key假设redis中有十亿条key,如何从这么多key中找到固定前缀的key?方法1:使用KEYS [pattern]:查找所有符合给定模式pattern的key使用keys [pattern]指令可以找到所有符合pattern条件的key,但是keys会一次性返回所有符合条件的key,所以会造成redis的卡顿,假设redis此时正在生产环境下,使用该命令就会造成隐患,另外如果一次性返回所有key,对内存的消耗在某些条件下也是巨大的。例:keys test*原创 2020-10-13 12:31:39 · 607 阅读 · 1 评论 -
Redis持久化
我们都知道Redis是个内存数据库,所有的数据都存储在内存中。一旦服务器上Redis进程退出,数据库中的数据就会丢失。这个时候我们就要对数据做持久化了,持久化简单的理解就是将内存中的数据做个备份。Redis的持久化有两种方法,即RDB持久化和AOF持久化。可以通过修改 redis.conf 来进行配置redis是如何存储数据的,看图做理解RDB持久化RDB 持久化可以在指定的时间间隔内生成数据集的时间点快照,默认开启该模式.RDB配置方式默认情况下,是快照RDB的持久化方式,将内存中的数据原创 2020-10-13 11:22:47 · 464 阅读 · 1 评论 -
为什么 Redis 的吞吐量能这么高
为什么 Redis 的吞吐量能这么高性能测试报告查看了下阿里 Redis 的性能测试报告如下,能够达到数十万、百万级别的 QPS(暂时忽略阿里对 Redis 所做的优化),我们从 Redis 的设计和实现来分析一下 Redis 是怎么做的Redis 的设计与实现其实 Redis 主要是通过三个方面来满足这样高效吞吐量的性能需求高效的数据结构多路复用 IO 模型事件机制高效的数据结构Redis 支持的几种高效的数据结构 string(字符串)、hash(哈希)、list(列表)、set原创 2020-10-10 01:12:59 · 1341 阅读 · 0 评论