redis
文章平均质量分 92
我想砍你
这个作者很懒,什么都没留下…
展开
-
十一、Redis使用管道(Pipeline)提升性能
Redis服务是一种C/S模型,即客户端发起请求,服务端处理并返回结果给客户端,如果Redis客户端要发送很多条请求,后面的请求需要等待前面的请求处理完后才能进行处理,而且每个请求都存在往返时间,即使redis性能极高,当数据量足够大,也会极大影响性能,所以Redis为了改进该问题,引入了管道技术:可以在服务端未及时响应的时候,客户端也可以继续发送命令请求,做到客户端和服务端互不影响,服务端并最终返回所有服务端的响应,大大提高了C/S模型交互的响应速度;(比如批量对Redis操作)1、在redisT...原创 2020-12-21 18:52:39 · 471 阅读 · 0 评论 -
十、数据库与缓存双写不一致性问题
我们在项目中大量使用缓存,主要是利用其高并发和高性能特性,一般情况下,我们是这样使用缓存:缓存的读取操作:先判断是否有缓存,有缓存之间返回给前端,无缓存,从数据库查询数据,如果数据库查询结果为空,则直接返回给前端,如果数据库查询结果不为空,则将数据写入缓存再返回给前端;缓存的更新操作:可以分为:(1)先更新数据库,再更新缓存;(不行)(2)先更新缓存,再更新数据库;(不行)(3)先更新数据库,再删除缓存;(4)先删除缓存,再更新数据库;(国内推荐)关于缓存的更新,目前是有争议的,没有统一方案原创 2020-12-21 17:32:53 · 288 阅读 · 1 评论 -
九、redis使用场景
1、分页排序场景https://weibo.com/2656274875/I7VUM4ob9StringHashListSetZset(SortedSet)Redis是一个高效的基于内存的key-value数据库,在Redis中通常根据数据的key查询其value值,Redis没有条件查询;案例:热门事件、热门微博、热门直播、热门主播等,下面会有很多评论,大家会不断地刷新和提交评论;如何设计?数据库方案:一个热门微博主题表,一个评论表(评论表有一个主题表的id),对应互动性的应用,性能较原创 2020-12-18 17:50:00 · 109 阅读 · 1 评论 -
七、分布式的缺陷与高并发下的优化
redis分布式锁 因为单线程,高并发的时候影响性能,下面是分段锁优化思想分段锁优化思想;1000个库存,分成50段,每段20个库存;随机或轮询算法定位分段;支持同时50个并发下单;假设每个下单耗时50ms;50ms下单50;1000ms下单=1000/50=20*50=1000个...原创 2020-12-18 17:47:28 · 135 阅读 · 1 评论 -
八、redis缓存雪崩、穿透、击穿概念及解决办法
缓存雪崩对于系统 A,假设每天高峰期每秒 5000 个请求,本来缓存在高峰期可以扛住每秒 4000 个请求,但是缓存机器意外发生了全盘宕机。缓存挂了,此时 1 秒 5000 个请求全部落数据库,数据库必然扛不住,它会报一下警,然后就挂了。此时,如果没有采用什么特别的方案来处理这个故障,DBA 很着急,重启数据库,但是数据库立马又被新的流量给打死了。这就是缓存雪崩。大约在 3 年前,国内比较知名的一个互联网公司,曾因为缓存事故,导致雪崩,后台系统全部崩溃,事故从当天下午持续到晚上凌晨 3~4 点,公司转载 2020-12-18 11:00:27 · 183 阅读 · 0 评论 -
六、redis分布式锁-解决超卖问题
package com.gaia.test.redisTest.distributelock;import com.gaia.test.redisTest.util.JedisPoolInstance;import redis.clients.jedis.Jedis;import redis.clients.jedis.JedisPool;import java.util.UUID;/** * Description: * * @author xuzhiqiang * Date 20原创 2020-12-17 11:28:35 · 323 阅读 · 1 评论 -
五、Redis和Spring整合-Jedis
使用jedis整合spring原创 2020-12-15 20:26:08 · 93 阅读 · 0 评论 -
三、redis过期时间设置
在Redis中提供了Expire命令设置一个键的过期时间,到期以后Redis会自动删除它,实际使用中也经常使用。EXPIRE命令:EXPIRE key seconds --先设置好数据,然后再设置该key的过期时间;SETEX key seconds value --在设置数据的同时,可以直接设置过期时间;其中seconds 参数表示键的过期时间,单位为秒。EXPIRE 返回值为1表示设置成功,0表示设置失败或者key不存在;keys * --查看redis中当前数据库0号库所有的key如原创 2020-12-14 20:20:14 · 538 阅读 · 0 评论 -
四、redis 过期key自动清理的原理
过期key自动删除(自动清理)的原理Redis 中的key失效是如何实现的,即失效的key是如何删除的?实际上,Redis 删除失效key的方法主要有两种:消极方法(passive way)在key被访问时如果发现它已经失效,那么就删除它;积极方法(active way)周期性地从设置了过期时间的key中选择一部分过期的key删除对于那些从未被查询的key,即便它们已经过期,消极方式也无法清除,因此Redis会周期性地随机测试一些key,已过期的key将会被删掉。Redis每秒会进行10次操作原创 2020-12-14 20:17:31 · 689 阅读 · 0 评论 -
二、redis数据类型
##string类型字符串类型是redis中最基本的数据类型,也是使用最多的一种数据类型,它能存储任何形式的字符串,包括二进制数据,byte字节等,也就是说string类型能存储任何数据,你可以用它存储序列化后的用户对象,json化的对象,甚至图片,视频等,一个key下的string类型允许存储的最大数据容量是512M;String类型可以用来存储任何类型的数据; SET, GET;String类型可以用来做计数器; INCR(增加), DECR, INCRBY,DECRBY...原创 2020-12-14 19:02:52 · 140 阅读 · 0 评论 -
一、redis基础配置
1、redis基本配置在使用Redis之前,建议将安装目录下redis-5.0.5/redis.conf配置文件修改三个配置项:1、protected-mode no (改为不保护,否则远程访问不了)2、bind 127.0.0.1 (注释掉,否则只能本机ip访问)3、daemonize yes (改为yes表示后台启动redis)启动:切换到 redis-5.0.5/src/ 目录执行命令 ./redis-server …/redis.conf 关闭: 切换到 redis-5.0.5/src原创 2020-12-14 17:48:50 · 788 阅读 · 0 评论