Redis
文章平均质量分 74
Redis
优惠券已抵扣
余额抵扣
还需支付
¥9.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
不死鸟.亚历山大.狼崽子
太极计算机股份有限公司系统架构师,从事ios、.net、flex、java等开发
展开
-
redis(17):什么是布隆过滤器?如何实现布隆过滤器?
布隆过滤器(Bloom Filter)是一种空间效率极高的概率型数据结构,用于判断一个元素是否在一个集合中。它基于位数组和多个哈希函数的原理,可以高效地进行元素的查询,而且占用的空间相对较小,如下图所示:根据 key 值计算出它的存储位置,然后将此位置标识全部标识为 1(未存放数据的位置全部为 0),查询时也是查询对应的位置是否全部为 1,如果全部为 1,则说明数据是可能存在的,否则一定不存在。也就是说,如果布隆过滤器说一个元素不在集合中,那么它一定不在这个集合中;原创 2024-05-30 22:51:57 · 344 阅读 · 0 评论 -
redis(16):Redis的BigKey问题以及解决方案
在Redis中,每个Key都会对应一个Value,而这个Value的大小会影响Redis的性能表现。当我们存储的Value特别大时,就会出现BigKey问题。比如,在我们的互联网系统中,需要保存用户最新1万个粉丝的业务,或者一个用户的个人信息缓存,里面包括了基本资料、关系图谱计数、发feed统计等。这些数据量庞大,很容易就会成为BigKey。在实际应用中,比如微博的feed内容缓存,通常用户发表的微博在140字以内,但是也会有一些用户发表了1千字甚至更长的微博内容,这些长微博也就成了大key。原创 2024-05-29 16:46:13 · 229 阅读 · 0 评论 -
redis(15):高效存储Bitmap
Redis Bitmap(位图)是一种高效的数据结构,用于存储大量的二进制信息,通常用于标记某些事件的发生与否或跟踪状态信息。Bitmap 在 Redis 中以字符串的形式进行存储,其中每个位都可以被设置为0或1,表示某种状态或标记。原创 2024-03-26 10:24:17 · 198 阅读 · 0 评论 -
redis(14):缓存雪崩、击穿、穿透及其处理方式
比如说,在 11 点的时候大家都去饿了么点外卖,这个时候饿了么的Redis 中就存了一大批商家的信息,并且饿了么的程序员给这个缓存设置的过期时间是 6 个小时。那么到下午 5 点晚饭时间又是一大波人来饿了么点外卖,这个时候 Redis 的缓存刚刚好集体过期了,短时间内大量的查询请求就全部落到了脆弱的MySql 上,导致 MySql 直接爆炸!在缓存失效的时候(判断拿出来的值为空),第1个进入的线程,获取锁并从数据库去取数据,没释放锁之前,其他并行进入的线程会等待,再重新去缓存取数据。原创 2024-01-13 00:09:22 · 187 阅读 · 0 评论 -
redis(13):Redis键和值的设计原则
因为业务复杂情况下,我们定义的key键太多时就不便于管理,也不便于查找,以 系统-模块-方法-参数 这样的规则定义,我们可以很清晰的了解redis key存储的值是做了什么事情。在Java常规开发中,我们需要有面向对象的思想,相对于对象来说,比较常用且能快速转换的格式就是 JSON 了;上面讲了简单的key存储,如 xdd的存储,此时普通的需求可以满足;上面提到了JSON,这是因为在Redis的存储中,我们使用它来存储value值,为什么要这样做呢?common:sys:flag:1 是。原创 2023-07-25 23:39:54 · 32 阅读 · 0 评论 -
redis(12):springboot使用redis注解做缓存
EnableCaching 在启动类上加上注解启动缓存。@Cacheconfig(全局的配置缓存)@CachEvict(解决脏读)@Cacheput 解决脏读。#作用在你要缓存的数据上。原创 2023-07-25 23:34:12 · 622 阅读 · 0 评论 -
redis(11):springboot中使用redis
若不设置序列化规则,它将使用JDK自动的序列化将对象转换为字节,存到Redis 里面。如果对象没有序列化,那么默认使用的JDK的序列化方式。它可以存在对象到redis里面。原创 2023-07-25 22:57:31 · 261 阅读 · 0 评论 -
redis(10):spring+redis+mysql缓存实现
【代码】redis(10):spring+redis+mysql缓存实现。原创 2023-07-25 00:09:14 · 498 阅读 · 0 评论 -
redis(9):spring里面使用redis
自行创建一个maven项目。原创 2023-07-24 17:41:28 · 409 阅读 · 0 评论 -
redis(8):java连接redis
JedisPool的配置参数大部分是由JedisPoolConfig的对应项来赋值的。原创 2023-07-20 23:16:13 · 203 阅读 · 0 评论 -
Redis 为什么用单线程模型?终于知道了!
为什么 Redis 在最初的版本中选择单线程模型?为什么 Redis 在 4.0 之后的版本中加入了多线程的支持?转载 2023-01-15 11:39:27 · 279 阅读 · 0 评论 -
Redis 16 个常见使用场景
brpop:brpop key1 timeout 移除并获取列表的最后一个元素,如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。blpop:blpop key1 timeout 移除并获取列表的第一个元素,如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。用户1可能认识的人(差集):sdiff 2:follow 1:follow。赛选商品,苹果的、ios的、屏幕在6.0-6.24之间的,屏幕材质是LCD屏幕。队列:先进先除:rpush blpop,左头右尾,右边进入队列,左边出队列。转载 2022-11-13 01:19:04 · 110 阅读 · 0 评论 -
redis(7):Redis的特殊数据类型以及常用相关命令详解
但是这种方式保存了大量的用户 ID,ID 一般比较长,占空间,还很麻烦。我们的目的是计数,不是保存数据,所以这样做有弊端。bitmap就是通过最小的单位bit来进行0或者1的设置,表示某个元素对应的值或者状态。一个bit的值,或者是0,或者是1;hyperloglog 的优点是占用内存小,并且是固定的。存储 2^64 个不同元素的基数,只需要 12 KB 的空间。传统的方式是使用 set 保存用户的ID,然后统计 set 中元素的数量作为判断标准。基数:数学上集合的元素个数,是不能重复的。原创 2022-11-12 21:30:57 · 645 阅读 · 0 评论 -
Redis和Mysql如何保持数据一致性
在高并发应用场景下,如果是对数据一致性要求高的情况下,要定位好导致数据和缓存不一致的原因解决高并发场景下数据一致性的方案有两种,分别是延时双删策略和异步更新缓存两种方案另外,设置缓存的过期时间是保证数据保持一致性的关键操作,需要结合业务进行合理的设置。转载 2022-11-04 11:51:43 · 115 阅读 · 0 评论 -
redis(6):Redis的复制(主/从)
1.官方介绍在 Redis 复制的基础上(不包括 Redis Cluster 或 Redis Sentinel 作为附加层提供的高可用性功能),有一个领导者跟随者(主副本)复制要使用和配置。它允许副本 Redis 实例成为主实例的精确副本。每次链接断开时,副本都会自动重新连接到主服务器,并且无论主服务器发生什么情况,都会尝试成为它的精确副本。该系统使用三种主要机制工作:当主实例和副本实例连接良好时,主实例通过向副本发送命令流来保持副本更新,以复制主端发生的对数据集的影响,原因是:客户端写入、密钥原创 2022-05-17 14:02:24 · 284 阅读 · 0 评论 -
redis(5):Redis的持久化
1、概述RDB(Redis 数据库):RDB 持久性以指定的时间间隔执行数据集的时间点快照。 AOF(Append Only File):AOF 持久化记录服务器接收到的每个写操作,在服务器启动时再次播放,重建原始数据集。命令使用与 Redis 协议本身相同的格式以仅附加方式记录。当日志变得太大时,Redis 能够在后台重写日志。 无持久性:如果您愿意,您可以完全禁用持久性,如果您希望您的数据只要服务器正在运行就存在。 RDB + AOF:可以在同一个实例中结合 AOF 和 RDB。请注意,在这种原创 2022-04-28 15:07:31 · 1092 阅读 · 0 评论 -
redis(4):Redis的事务
1. 什么是Redis事务可以一次执行多个命令,本质是一组命令的集合。一个事务中的 所有命令都会序列化,按顺序地串行化执行而不会被其它命令插入,不许加塞官网说明:https://redis.io/topics/transactions2. 能为我们做什么一个队列中,一次性、顺序性、排它性的执行一系列命令3. 相关命令3.1 常用命令3.2 执行阶段开启:以MULTI开始一个事务入队:将多个命令入队到事务中,接到这些命令并不会立即执行,而是放到等待执行的事务.原创 2022-04-25 11:25:16 · 235 阅读 · 0 评论 -
redis(3):常见配置redis.conf介绍
参数说明redis.conf 配置项说明如下:1. Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程 daemonize no2. 当Redis以守护进程方式运行时,Redis默认会把pid写入/var/run/redis.pid文件,可以通过pidfile指定 pidfile /var/run/redis.pid3. 指定Redis监听端口,默认端口为6379,作者在自己的一篇博文中解释了为什么选用6379作为默认端口,因为6379在手机按键..原创 2022-04-23 14:50:19 · 289 阅读 · 0 评论 -
redis(2):解析配置文件redis.conf
1.unit1.1 配置大小单位,开头定义了一些基本的度量单位,只支持bytes,不支持bit1.2 对大小写不敏感2.INCLUDES包含和我们的spring配置文件类似,可以通过includes包含,redis.conf可以作为总闸,包含其他3.NETWORK网络默认情况下,如果没有指定“bind”配置指令,则Redis侦听用于连接服务器上所有可用的网络接口。可以只监听一个或多个选择的接口 "bind"配置指令,后面跟着一个或多个IP地址。3.1 b.原创 2022-04-23 14:48:48 · 1430 阅读 · 0 评论 -
redis(1):redis的基础数据类型以及常用相关命令详解
1.基础数据类型1.1 概述使用Redis进行应用设计和开发的一个核心概念是数据类型。与关系数据库不同,在Redis中不存在需要我们担心的表,在使用Redis进行应用设计和开发时,我们首先应该考虑的是Redis原生支持的哪种数据类型阳适合我们的应该场景,此外,我们无法像在关系数据库中那样,使用sql来操作Redis中的数据,相反,我们需要直接使用API发送数据反对应的命令,来操作想要操作的数据1.2 字符串类型Map<String,String>字符串类型是...原创 2022-04-22 23:16:53 · 183 阅读 · 0 评论 -
启动redis报错:/var/run/redis_6379.pid exists, process is already running or crashed
rm -rf /var/run/redis_6379.pid原创 2021-06-28 10:48:02 · 1740 阅读 · 0 评论 -
Linux:Redis开机启动
#!/bin/bash## chkconfig: 2345 10 90 # description: Start and Stop redis PATH=/usr/local/bin:/sbin:/usr/bin:/bin REDISPORT=6379 EXEC=/usr/local/bin/redis-server REDIS_CLI=/usr/local/bin/redis-cli PIDFILE=/var/run/redis.pid ...原创 2020-10-31 00:00:23 · 273 阅读 · 1 评论 -
Linux:安装Redis
1.下载redis安装包并解压地址如下:http://download.redis.io/releases/然后进行解压tar -zxvf redis-5.0.3.tar.gz -C /usr/local/redis/2.进入安装文件夹进行编译cd redis-5.0.3 make //编译注意此时有的系统会报异常,如下:以上错误为没有安装gcc,先按照gcc,请参考Linux:安装gcc。安装完gcc以后,清空之前编译失.原创 2020-10-24 20:25:20 · 206 阅读 · 0 评论 -
Redis内部数据结构详解(1)——dict
如果你使用过Redis,一定会像我一样对它的内部实现产生兴趣。《Redis内部数据结构详解》是我准备写的一个系列,也是我个人对于之前研究Redis的一个阶段性总结,着重讲解Redis在内存中的数据结构实现(暂不涉及持久化的话题)。Redis本质上是一个数据结构服务器(data structures server),以高效的方式实现了多种现成的数据结构,研究它的数据结构和基于其上的算法,对于我们自己...转载 2020-04-06 15:51:06 · 285 阅读 · 0 评论 -
Spring Boot(三十二):Spring Boot 整合 Redis(使用Jedis)
在1.x.x的版本时默认使用的jedis客户端,下面介绍直接Jedis操作Redis,以下只介绍几个简单的API,其他具体的API见:https://tool.oschina.net/uploads/apidocs/。在pom.xml文件中添加依赖<!-- 基于SpringBoot项目的基础上,额外引入一下两个jar包 --><dependency> ...原创 2020-02-21 13:05:35 · 373 阅读 · 0 评论 -
Spring Boot(三十一):Spring Boot整合 Redis(使用Spring Data Redis)
使用 Java 操作 Redis 的方案很多,Jedis 是目前较为流行的一种方案,除了 Jedis ,还有很多其他解决方案,如下:除了这些方案之外,还有一个使用也相当多的方案,就是 Spring Data Redis。在传统的 SSM 中,需要开发者自己来配置 Spring Data Redis ,这个配置比较繁琐,主要配置 3 个东西:连接池、连接器信息以及 key 和 value...原创 2020-02-21 13:05:20 · 600 阅读 · 0 评论 -
Redis 的内存淘汰策略
Redis占用内存大小我们知道Redis是基于内存的key-value数据库,因为系统的内存大小有限,所以我们在使用Redis的时候可以配置Redis能使用的最大的内存大小。1、通过配置文件配置通过在Redis安装目录下面的redis.conf配置文件中添加以下配置设置内存大小//设置Redis最大占用内存大小为100Mmaxmemory 100mb2、通过命令修改...转载 2020-03-15 10:51:07 · 237 阅读 · 0 评论 -
Mac环境下安装Redis
一、首先是官网下载redis下载 stable 版本,稳定版本。二、安装与编译先找到usr/local目录,也可以直接命令行完成,建议windows可以这样操作,自己mac系统直接命令行出现了错误,找不到改目录,于是手动移动安装目录。主要分为两步,先是打开访达,command+shift+G跳转目录。然后使用一下解压命令,或手动解压到该路径下。解压:tar zx...原创 2020-01-03 16:37:40 · 432 阅读 · 0 评论