redis
文章平均质量分 93
刘翔UP
生活中的20%是由发生在你身上的事情组成,
而另外的80%则是由你对所发生的事情如何反应所决定。
懂得接受,懂得控制情绪,调整心态的人,才能拥有更多的幸福。
只有消化了坏情绪,才能痛痛快快地拥抱好运气。
只有把握好情绪,我们才能更好地把握人生。
加油
展开
-
聊聊本地缓存和分布式缓存
本地缓存做为一级缓存,分布式缓存做为二级缓存,首先从一级缓存中查询,若能查询到数据则直接返回,否则从二级缓存中查询,若二级缓存中可以查询到数据,则回填到一级缓存中,并返回数据。1、业务网关刚启动时,本地缓存没有数据,读取 Redis 缓存,如果 Redis 缓存也没数据,则通过 RPC 调用导购服务读取数据,然后再将数据写入本地缓存和 Redis 中;:应用中的缓存组件,缓存组件和应用在同一进程中,缓存的读写非常快,没有网络开销。但各应用或集群的各节点都需要维护自己的单独缓存,无法共享缓存。转载 2023-07-27 17:15:49 · 558 阅读 · 0 评论 -
Redis数据结构
Redis 为什么那么快?除了它是内存数据库,使得所有的操作都在内存上进行之外,还有一个重要因素,它实现的数据结构,使得我们对数据进行增删查改操作时,Redis 能高效的处理。因此,这次我们就来好好聊一下 Redis 数据结构,这个在面试中太常问了。注意,Redis 数据结构并不是指 tring(字符串)、List(列表)、Hash(哈希)、Set(集合)和 Zset(有序集合),因为这些是 Redis 键值对中值的数据类型,并不是数据结构。这些数据类型的底层实现的方式,才是数据结构。Red转载 2021-12-03 18:55:40 · 311 阅读 · 0 评论 -
2020-09-15redis集群(主从)脑裂及解决方案
什么是redis的集群脑裂?redis的集群脑裂是指因为网络问题,导致redis master节点跟redis slave节点和sentinel集群处于不同的网络分区,此时因为sentinel集群无法感知到master的存在,所以将slave节点提升为master节点。此时存在两个不同的master节点,就像一个大脑分裂成了两个。集群脑裂问题中,如果客户端还在基于原来的master节点继续写入数据,那么新的master节点将无法同步这些数据,当网络问题解决之后,sentinel集群将原先的master节转载 2020-09-15 13:54:18 · 300 阅读 · 0 评论 -
redis的消息队列防止数据丢失的方法
序言:Redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。“消息队列”是 Microsoft 的消息处理技术,它在任何安装 Microsoft Window转载 2020-09-07 16:46:16 · 5841 阅读 · 0 评论 -
Redis实现消息队列-保证消息百分百不丢
序言:Redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。“消息队列”是 Microsoft 的消息处理技术,它在任何安装 Microsoft Window转载 2020-09-08 09:56:28 · 1825 阅读 · 0 评论 -
如何在海量数据中判断某个数据是否存在?
这是一道面试题:如何在海量数据(如亿级数据)中判断某个数据是否存在?回想一下,在java中我们可以使用列表、集合等数据结构来存放数据,如hashmap,然后判断某个数据是否存在,但在此问题中显然不适用,因为上亿的数据在内存较小的计算机中无法存放。通常我们有以下解决思路: 将海量数据分散存储到多个文件中去,依次将每个文件载入内存进行判定; 使用多台机器进行分布式计算,每台机器完成各自任务; 使用布隆过滤器(Bloom Filter)。 本篇主要介绍第三种...转载 2020-09-08 09:52:32 · 1693 阅读 · 2 评论 -
Redis|主从复制与哨兵机制
Redis|主从复制与哨兵机制1. Redis主从复制1.1 Redis主从复制Redis主从复制主要有两个角色,主机(master)对外提供读写功能,从机(slave)对外只提供读功能,主机定期把数据同步到从机上保证数据一致性。 Redis主机数据同步到从机上有两种方式,一种是全量同步,另一种是增量同步。 主从复制不会阻塞master,在数据同步时,master还可以继续处理客户端请求,因为redis会产生一个新的进程来解决同步问题。 一个redis也可以是从也可以是主(树.转载 2020-09-07 16:21:52 · 151 阅读 · 0 评论 -
redis分布式锁
分布式锁简介:分布式锁是控制分布式系统或不同系统之间共同访问共享资源的一种锁实现。在集群架构中,多个JVM虚拟机之间为了保证数据的一致性 ,所以引进了分布式锁的的概念。分布式锁的设计要求1.在分布式系统环境下,一个方法在同一时间只能被一个机器的一个线程执行 2.高可用的获取锁与释放锁 3.高性能的获取锁与释放锁 4.具备可重入特性(可理解为重新进入,由多于一个任务并发使用,而不必担心数据错误) 5.具备锁失效机制,防止死锁 6.具备非阻塞锁特性,即没有获取到锁将直接返回..转载 2020-09-07 16:09:12 · 137 阅读 · 0 评论 -
Redis 内存淘汰策略和算法
我们知道Redis是分布式内存数据库,基于内存运行,可是有没有想过比较好的服务器内存也不过几百G,能存多少数据呢,当内存占用满了之后该怎么办呢?Redis的内存是否可以设置限制? 过期的key是怎么从内存中删除的?不要怕,本篇我们一起来看一下Redis的内存淘汰策略是如何释放内存的,以及过期的key是如何从内存中删除的。目录介绍内存淘汰策略LRU算法LFU算法过期删除策略AOF和RDB的过期删除策略提到Redis是基于内存的数据库,当内存满了的时候会发生什么呢?Redi.转载 2020-09-07 15:27:40 · 663 阅读 · 2 评论 -
Redis 限流算法:令牌算法介绍和具体的代码实现
基于redis的分布式限流方案为什么要选用redis:redis效率高,易扩展redis对语言无关,可以更好的接入不同语言开发的系统(异构)redis单进程单线程的特点可以更好的解决最终一致性,多进程间协同控制更为容易计数器算法实现先来看一个比较简单的计数器算法的实现。计数器算法前文限流技术总结有过详细说明,现在我们用lua代码来实现这个算法:令牌桶算法计数器算法容易出现不平滑的情况,瞬间的qps有可能超过系统的承载。因此在实际场景中我们一般很少使用。令牌..转载 2020-09-07 15:13:57 · 1199 阅读 · 1 评论 -
Redis中的五种数据类型使用场景
在Redis中有五种数据类型String----------字符串Hash------------字典List-------------列表Set--------------集合Sorted Set------有序集合一 数据类型String—字符串string是redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个value。string类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象 。st转载 2020-09-07 14:56:59 · 130 阅读 · 0 评论 -
基于Redis实现消息队列典型方案
基于Redis实现消息队列典型方案1 概述 2 基于List的 LPUSH+BRPOP 的实现 3 PUB/SUB,订阅/发布模式 4 基于SortedSet有序集合的实现 5 基于 Stream 类型的实现 6 其他实现# 1 概述消息队列,Message Queue,常用于解决并发系统中的资源一致性问题,提升峰值的处理能力,同时保证消息的顺序性、可恢复性、必送达性,对应用进行解耦,或者实现异步通讯等。市面上的 MQ应用有很多(例如:Kafka,RabbitMQ,Disqu..转载 2020-09-07 14:53:38 · 119 阅读 · 0 评论 -
Redis 中的5种特殊的数据结构 bitmap,hyperLogLog,bloomFilter,GeoHash,Stream
今天给大家带来的是 Redis 中的四种特殊的数据结构 bitmap,hyperLogLog,bloomFilter,GeoHash,Stream 。这四种数据结构其实有点类似于算法层面了,比如 GeoHash 其实就是一个 zset,bitmap 就是 string,只是使用的方法不同导致了更多的功能。BloomFilter介绍以及场景使用BloomFilter 中文名就是 布隆过滤器,作为过滤器,有没有感觉很像 LOL 中布隆的 E技能(坚不可摧) ?布隆过滤器是一个叫 布隆 的人提出来转载 2020-09-07 14:42:33 · 1332 阅读 · 0 评论 -
Redis 为什么是单线程模型
文件事件处理器Redis基于Reactor模式开发了网络事件处理器,这个处理器被称为文件事件处理器。它的组成结构为4部分:多个套接字、IO多路复用程序、文件事件分派器、事件处理器。因为文件事件分派器队列的消费是单线程的,所以Redis才叫单线程模型。消息处理流程 文件事件处理器使用I/O多路复用(multiplexing)程序来同时监听多个套接字,并根据套接字目前执行的任务来为套接字关联不同的事件处理器。 当被监听的套接字准备好执行连接应答(accept)、读取(read)、写入转载 2020-09-07 10:58:20 · 191 阅读 · 0 评论 -
redis Spring 和 RedisTemplate 工具类
1、 redis.conf配置文件,Redis启动的时候需要一个redis.conf配置文件,主要有以下配置项:2,与spring 集成配置 <bean id="jedisConnectionFactory" class="org.springframework.data.redis.connection.jedis.Jedi原创 2016-11-21 18:31:58 · 6046 阅读 · 0 评论 -
redis为什么快?
基于内存存储 Redis是一个开源的内存中的数据结构存储系统,redis也提供持久化的选项可以持久话到磁盘里面(可以通过命令)正是因为redis是内存中的数据结构存储体系所以他是不受io限制的,每一次CPU进行一次IO读去一个数据块是非常耗时间的(直接在内存中读取和在磁盘中读取大概相差40多倍)看看下面的这两张图真的是太直观了。 拓展一下: 第一张图说的是数据库的: 储存索引的话也就是咋们创键索引的时候在内存中存储的B+树 其叶子结点指向的是磁盘中的数据块,之所以使用B+树 原因之一就是因为B+树..转载 2020-07-30 19:23:14 · 3872 阅读 · 0 评论 -
什么是跳跃表
什么是跳跃表? 跳跃表是将链表改造支持二分法查找的数据结构 ,如果是一个单链表的话,他查找数据的时间复杂度为O(n),于是给单链表添加一级索引 每两个节点提取一个节点到上一级,我们把诌出来的哪一级叫做索引或者索引层,如下图: 如上图当你查找16的时候,你只需要遍历7次就可以得到结果值 , 先去第一层索引查到,遍历到13的时候 发现下一个节点是17 那我们就知道此时16就在这两个节点之间,所以我们进行down进入下一层 继续遍历这个时候我们只需要遍历两个节点就可以找到了,所以我们遍历16在建立上...转载 2020-07-30 19:21:14 · 2254 阅读 · 1 评论 -
Redis HyperLogLog 统计计相同数量的独立 元素
如果我们要实现记录网站每天访问的独立IP数量这样的一个功能集合实现:使用集合来储存每个访客的 IP ,通过集合性质(集合中的每个元素都各不相同)来得到多个独立 IP ,然后通过调用 SCARD 命令来得出独立 IP 的数量。举个例子,程序可以使用以下代码来记录 2014 年 8 月 15 日,每个网站访客的 IP : ip = get_vistor_ip(转载 2016-12-01 14:17:36 · 789 阅读 · 0 评论 -
Redis 数据类型 ,中文API,持久化。,主从复制
一、Redis基础部分:1、redis介绍与安装比mysql快10倍以上*****************redis适用场合****************1.取最新N个数据的操作2.排行榜应用,取TOP N 操作3.需要精确设定过期时间的应用4.计数器应用5.Uniq操作,获取某段时间所有数据排重值6.实时系统,反垃圾系统7.Pub/Sub构建实时消息系统7.转载 2016-11-30 18:17:47 · 286 阅读 · 0 评论 -
redis 内存陷阱
原文链接:redis是个对内存依赖性很强的NoSql数据库,在内存足够的情况下性能出色如果只有一台机子去部署redis,一定要特别小心。比如我有台24G的服务器,理所当然我会将大量内存分配给redis。比如20G的内存, 问题来了, 当你对redis插入数据后,redis会异步将数据dump到硬盘中想起来很完美,问题是它会fork一个进程,并占去同样转载 2016-12-01 13:43:47 · 2004 阅读 · 0 评论 -
redis 的两种持久化方式及原理
文章转自:http://zhengdl126.iteye.com/blog/2191834Redis是一种高级key-value数据库。它跟memcached类似,不过数据可以持久化,而且支持的数据类型很丰富。有字符串,链表,集 合和有序集合。支持在服务器端计算集合的并,交和补集(difference)等,还支持多种排序功能。所以Redis也可以被看成是一个数据结构服务 器。Redis转载 2016-11-30 18:44:11 · 317 阅读 · 0 评论 -
Redis配置文件参数详解
文章来源:http://bbs.redis.cn/forum.php?mod=viewthread&tid=702&extra=page%3D11. Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程daemonize no2. 当Redis以守护进程方式运行时,Redis默认会把pid写入/var/run/redis.pid文件,可以通过pidf转载 2016-11-30 16:27:11 · 383 阅读 · 0 评论