
redis
文章平均质量分 70
镇杰。
这个作者很懒,什么都没留下…
展开
-
Redis持久化:RDB和AOF
为什么需要持久化?Redis对数据的操作都是基于内存的,当遇到了进程退出、服务器宕机等意外情况,如果没有持久化机制,那么Redis中的数据将会丢失无法恢复。有了持久化机制,Redis在下次重启时可以利用之前持久化的文件进行数据恢复。理解和掌握Redis的持久机制,对于Redis的日常开发和运维都有很大帮助,也是在大厂面试经常被问到的知识点。Redis支持的两种持久化机制:RDB:把当前数据生成快照保存在硬盘上。 AOF:记录每次对数据的操作到硬盘上。接下来,我们详细了解一下这两种持久化机制。转载 2022-05-11 21:28:20 · 235 阅读 · 0 评论 -
Redis过期删除策略
了解redis过期删除策略前,先了解一下三种过期删除策略:定期删除策略:概念:在设置键的过期时间的同时,创建一个定时器,让定时器在键的过期时间来临时,立即执行对键的删除操作。(创建定时器删除)优点:对内存最友好:通过使用定时器,可以保证过期的键会尽可能快地被删除,释放所占内存缺点:对cpu最不友好:在过期键比较多的情况下,删除过期键这一行为可能会占用相当一部分cpu的时间,对服务器的响应时间和吞吐量造成影响。惰性删除策略:概念:放任键的过期不管,但是每次从键空间中获取键时,都转载 2022-05-11 09:25:08 · 7957 阅读 · 3 评论 -
Redis内存淘汰策略
Redis内存淘汰策略:是指在Redis的用于缓存的内存不足时,怎么处理需要新写入且需要申请额外空间的数据。noeviction: (默认策略) 当内存不足以容纳新写入数据时,新写入操作会报错。 allkeys-lru:当内存不足以容纳新写入数据时,在键空间中,移除最近最少使用的 key。 allkeys-random:当内存不足以容纳新写入数据时,在键空间中,随机移除某个 key。 volatile-lru:当内存不足以容纳新写入数据时,在设置了过期时间的键空间中,移除最近最少使用的 key。原创 2022-05-09 23:13:14 · 422 阅读 · 0 评论 -
Redis事务
1、Redis事务的概念:可以一次性执行多条命令,本质上是一组命令的集合。一个事务中的所有命令都会序列化,然后按顺序地串行化执行,而不会被插入其他命令。总结说:redis事务就是一次性、顺序性、排他性的执行一个队列中的一系列命令2、Redis事务没有隔离级别:批量操作在发送 EXEC 命令前被放入队列缓存,并不会被实际执行,也就不存在事务内的查询要看到事务里的更新,事务外查询不能看到。3、Redis不保证原子性:Redis中,单条命令是原子性执行的,但事务不保证原子性,且没有原创 2022-05-26 14:40:36 · 479 阅读 · 1 评论 -
Redis解决商品秒杀与超卖
这个是实体店我们会看到的场景,100件商品,1人1件,最后200人中只有100人能买到商品,剩下100人只能空手而归。如果您开了家网店,同样你开起了秒杀的活动,可能同时会有1000人通过不同的终端访问你的商品秒杀活动页面,你的商品可以会在瞬间秒杀完毕,库存清零。可是如果网店秒杀活动程序设计出问题,会导致秒杀库存超卖的现象,比如100件库存,实际订单有120件,原因就处在并发同时程序处理的问题上。其实我们也可以采取排队限购的办法解决网店秒杀活动商品超卖的问题。今天我们给大家讲解采用PHP+Redis+MyS原创 2021-03-03 20:21:15 · 1930 阅读 · 3 评论 -
Redis设置有效时间
一、有效时间设置:redis对存储值的过期处理实际上是针对该值的键(key)处理的,即时间的设置也是设置key的有效时间。Expires字典保存了所有键的过期时间,Expires也被称为过期字段。四种处理策略EXPIRE 将key的生存时间设置为ttl秒 PEXPIRE 将key的生成时间设置为ttl毫秒 EXPIREAT 将key的过期时间设置为timestamp所代表的的秒数的时间戳 PEXPIREAT 将key的过期时间设置为timestamp所代表的的毫秒数的时间戳其实以上几种处.原创 2021-02-19 11:18:43 · 5097 阅读 · 0 评论 -
Redis常用数据类型及应用场景之ZSet
后面再列举一些Redis其他的一些应用场景转载 2021-01-25 14:41:27 · 208 阅读 · 0 评论 -
远程连接redis失败原因(Linux)
原因1 :redis服务端口(默认6379)没有对外开发,被防火墙拦截了 其实很多远程无法访问的情况都是由于端口没有对外开放造成成,如你要访问部署在阿里云上的mysql时,需要到阿里云的控制台开放对应的端口(默认为3306)原因2:redis本身默认设置不允许外网访问,需要修改配置文件本人使用的Linux系统是Centos 7 64位针对原因1的解决方案是:开放端口,我启动redis使用redis默认的端口6379,如果你启动redis时修改过端口,...原创 2020-09-16 14:24:04 · 2768 阅读 · 0 评论 -
Redis安装和配置
Windows版的Redis可到此处下载,非官方版http://code.google.com/p/servicestack/wiki/RedisWindowsDownloadredis.conf复制以下===与====之内的内容=================================# Redis configuration file example# By default ...原创 2018-12-11 17:24:21 · 190 阅读 · 0 评论 -
Redis缓存穿透,缓存击穿,缓存雪崩概念及解决方案
缓存穿透: 概念:是指查询一个缓存库和数据库都不存在的数据,以穿透redis缓存库。正常的使用缓存流程大致是,数据查询先进行缓存查询,如果key不存在或者key已经过期,再对数据库进行查询,并把查询到的对象,放进缓存。如果数据库查询对象为空,则不放进缓存。比如用一个不存在的用户id获取用户信息,不论缓存还是数据库都没有,若黑客利用此漏洞进行攻击可能压垮数据库。 解决方案: ...原创 2020-03-14 23:53:47 · 155 阅读 · 0 评论 -
Redis支持的5种数据类型
String(字符串): string类型是二进制安全的,意思是redis的string可以包含任何数据,比如jpg图片或者序列化的对象 ;string类型是Redis最基本的数据类型,一个键最大能存储512MB。 Hash(哈希): hash是一个string类型的field和value的映射表,hash特别适合用于存储对象。 List(列表): list...原创 2020-02-25 19:21:38 · 629 阅读 · 0 评论