
Redis
盲流子开发
这个作者很懒,什么都没留下…
展开
-
Redis--秒杀系统分析需求
1. 秒杀系统业务分析2. 秒杀系统结构分析如图所示,第一层是前端拦截层、第二层是网关处理层、第三层是业务逻辑层、第四层是DB入库。在第三层中我们会用到Redis,这篇博客是秒杀系统中的Redis的应用场景,所以这篇博客主要讲解业务逻辑层。2.1 网关处理层简单讲一件网关处理层的实现,网关处理层主要处理后端流量数据的拦截,比如说我们有几十万的用户同时进行一个秒杀的功能,那么我们就会有这...原创 2020-01-08 16:43:54 · 739 阅读 · 0 评论 -
Redis--布隆过滤器
1. 简介布隆过滤器可以用来判断一个元素是否在一个集合中。它的优势是只需要占用很小的内存空间以及有着高效的查询效率布隆过滤器是什么,一定要用吗?黑客流量攻击:故意访问不存在的数据,导致程序不断访问DB数据库的数据黑客安全阻击:当黑客访问不存在的缓存时迅速返回避免缓存及DB挂掉思考:50亿个电话号码,现有10万个电话号码,如何判断这10万个是否已经存在在50亿个之中?(可能方案:数...原创 2020-01-04 16:08:07 · 336 阅读 · 0 评论 -
Redis---过期key清除策略
我们模拟一个业务场景, 我们使用redis来保存一些登录信息,来实现一个redissession,如果我们的用户特别特别多,然后我们的token又有一个过期时间,那redis是怎么对过期的key进行删除的呢?redis的删除策略主要有三种惰性删除定时删除定期删除1. 惰性删除当一些客户端获取 key 的时候,key会被发现并主动的过期。放任键过期不管,但是每次从键空间中获取时,都...原创 2020-01-02 18:07:54 · 206 阅读 · 0 评论 -
Redis--分布式锁
在Java中,关于锁我想大家都很熟悉。在并发编程中,我们通过锁,来避免由于竞争而造成的数据不一致问题。通常,我们以synchronized 、Lock来使用它。但是Java中的锁,只能保证在同一个JVM进程内中执行。如果在分布式集群环境下呢?1. 什么是分布式锁分布式锁是控制分布式系统或不同系统之家共同访问共享资源的一种实现。如果不同的系统或同一个系统的不同主机之间共享了某个资源时,往往通...原创 2020-01-02 17:00:46 · 200 阅读 · 3 评论 -
Redis--持久化
Redis持久化用一句话可以将持久化概括为:将数据(如内存中的对象)保存到可永久保存的存储设备中。持久化的主要应用是将内存中的对象存储在数据库中,或者存储在磁盘文件中、 XML 数据文件中等等。Redis 为什么要持久化?Redis 中的数据类型都支持 push/pop、add/remove 及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,Redis 支持各种不同方式...原创 2019-12-30 10:43:42 · 274 阅读 · 0 评论 -
Redis--GEO
简介GEO(地理信息定位)是存储经纬度,计算两地距离,范围计算等。命令geoadd增加地理位置信息geoadd key longitude latitude member [longitude latitude member...]geopos查找指定key的经纬度信息,可以指定多个key,批量返回geopos key member [member...]geodist...原创 2019-12-26 17:23:22 · 450 阅读 · 0 评论 -
Redis--HyperLogLog
1. 介绍Redis 在 2.8.9 版本添加了 HyperLogLog 结构。Redis HyperLogLog 是用来做基数统计的算法HyperLogLog 的优点是,在输入元素的数量或者体积非常非常大时,计算基数所需的空间总是固定 的、并且是很小的HyperLogLog 只会根据输入元素来计算基数,而不会储存输入元素本身。HyperLogLog的本质还是字符串在开始这一节之前,我们...原创 2019-12-26 16:32:10 · 174 阅读 · 0 评论 -
Redis--pipeline(流水线)
什么是流水线首先我们看一下Redis1次网络命令通讯模型如果要执行多条命令,要执行多次操作,批量网络命令通讯模型如下我们知道Redis的命令执行时间是特别快的,但是网络相反会有很大的不同,可能是内网之间通讯,也有可能是外网之间通讯,也甚至可能是跨机房,跨地区访问都有可能。那么什么是流水线,流水线是将一批命令批量打包,然后在服务端进行批量计算,然后将批量结果返回给客户端,如下图所示,这样...原创 2019-12-26 14:51:08 · 325 阅读 · 0 评论 -
Redis--慢查询
Redis慢查询日志是一个记录超过指定执行时间的查询的系统。 这里的执行时间不包括IO操作,比如与客户端通信,发送回复等等,而只是实际执行命令所需的时间(这是唯一在命令执行过程中线程被阻塞且不能同时处理其他请求的阶段)。如上图所示:Redis客户端一条命令执行分4个步骤:发送命令命令进入队列排队执行命令返回结果慢查询统计的是第3步(执行命令)的时间参数配置慢查询有两个参数需要...原创 2019-12-25 17:59:54 · 226 阅读 · 0 评论 -
Redis--数据结构
1. 字符串结构string是redis最基本的类型,一个key对应一个value。string类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象string类型是Redis最基本的数据类型,一个键最大能存储512MB命令--增set mykey "test" --为键设置新值,并覆盖原有值getset mycounter ...原创 2019-12-25 16:58:35 · 221 阅读 · 0 评论 -
Redis--介绍与安装
1. Redis简介Remote Dictionary Server(Redis) 远程字典服务器是完全开源免费的,用C语言编写的,遵守BSD开源协议,是一个高性能的(key/value)分布式内存数据库,基于内存运行,并支持持久化的NoSQL数据库,它也通常被称为数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Map), 列表(list), 集合(sets) 和 有...原创 2019-12-24 17:41:21 · 276 阅读 · 0 评论