![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
redis
文章平均质量分 65
远古大猛犸
混迹于京城的一名软件开发者
展开
-
redis中主从、哨兵和集群这三个有什么区别
Redis主从就是常见的主从模式,从节点自动同步主节点数据,实现数据的热备份。Redis哨兵就是在Redis主从上添加了一个监控系统(Redis Sentinel系统),实现故障转移,Redis哨兵会监控Redis主从节点运行状态,当主节点故障下线后,Redis哨兵会选择一个从节点充当新的主节点,继续提供服务。Redis集群在Redis主从上添加了监控机制和数据分片机制(Redis中是分槽位),实现故障转移和数据水平扩展,Redis集群中组合了多个Redis主从,并且每个Redis主节点都负责存储集转载 2022-04-16 22:08:05 · 2632 阅读 · 0 评论 -
Redis 越来越慢?常见延迟问题定位与分析
Redis作为内存数据库,拥有非常高的性能,单个实例的QPS能够达到10W左右。但我们在使用Redis时,经常时不时会出现访问延迟很大的情况,如果你不知道Redis的内部实现原理,在排查问题时就会一头雾水。很多时候,Redis出现访问延迟变大,都与我们的使用不当或运维不合理导致的。这篇文章我们就来分析一下Redis在使用过程中,经常会遇到的延迟问题以及如何定位和分析。- 使用复杂度高的命令 -如果在使用Redis时,发现访问延迟突然增大,如何进行排...转载 2021-03-07 00:42:47 · 444 阅读 · 0 评论 -
Redis官方分布式锁的实现-Redlock实现原理
前文笔者介绍了目前市面上见的比较多的Redis+lua分布式锁的实现,大概有如下三个要点:set命令要用 setkey value px milliseconds nx;保证原子性value要具有唯一性,释放锁时要验证value值,不能误解锁;解锁要使用lua脚本,也是为了保证原子性Redis官方也指出该方法有安全隐患就是在主从复制模式下会导致两个线程可能会同时持有一个锁,如果业务允许如此,则推荐使用这种方案,毕竟实现简单,易维护。如果对锁的要求非常高的场景,Redis官方建议使用RedLoc转载 2020-07-07 03:24:17 · 388 阅读 · 0 评论 -
用Redis构建分布式锁
《Redis官方文档》用Redis构建分布式锁原文链接译者:yy-leo 校对:方腾飞(红体标记重点)用Redis构建分布式锁在不同进程需要互斥地访问共享资源时,分布式锁是一种非常有用的技术手段。 有很多三方库和文章描述如何用Redis实现一个分布式锁管理器,但是这些库实现的方式差别很大,而且很多简单的实现其实只需采用稍微增加一点复杂的设计就可以获得更好的可靠性。这篇文章的目的就是尝试提出一种官方权威的用Redis实现分布式锁管理器的算法,我们把这个算法称为RedLock,我们相信这个...转载 2020-07-07 03:22:41 · 234 阅读 · 0 评论 -
NodeJS 基于redis的分布式锁的实现(Redlock算法)
1. 前言开发时,碰到互斥问题,需要保证在分布式环境下,避免重复性操作修改用户状态,如:用户订单状态,购票时,修改票的余额等2. 分布式锁的条件分布式锁需要满足下列条件锁需要有充足的可访问的存储空间锁必须被唯一标识锁至少要有两种状态同时,要保证安全特性:互斥访问,永远只有一个client能拿到锁避免死锁:client最后可以拿到锁,不会出现死锁,即使原本上锁的client出现问题无法解锁容错性:容错,只要大多数redis节点能够正常工作,客户端端都能获取和释放锁。3.Redis转载 2020-07-07 03:07:27 · 2417 阅读 · 0 评论 -
Redlock:Redis分布式锁最牛逼的实现
普通实现说道Redis分布式锁大部分人都会想到:setnx+lua,或者知道set key value px milliseconds nx。后一种方式的核心实现命令如下:- 获取锁(unique_value可以是UUID等)SET resource_name unique_value NX PX 30000- 释放锁(lua脚本中,一定要比较value,防止误解锁)if redis.call("get",KEYS[1]) == ARGV[1] then return red.转载 2020-07-07 03:00:14 · 475 阅读 · 0 评论 -
如何使用Redis Watch命令
如何使用Redis Watch命令使用Redis管理数据,理解如何使用事务存储键值对数据很重要。Redis事务与RDMMS事务有些类似,但也有差异。Redis主要通过几个命令有效管理事务,本文讨论Redis的Watch命令以及如何使用。1. 概述在阅读之前你最好安装好Redis环境,熟悉Redis常用命令。Redis事务命令主要包括 WATCH, EXEC, DISCARD, MULTI。这些命令构成一组命令块,确保在一个步骤中全部执行。首先,它们确保事务中的命令将按顺序执行并序列化。这意味着在执转载 2020-07-07 00:45:32 · 455 阅读 · 0 评论 -
一致性Hash在负载均衡中的应用
简介一致性Hash是一种特殊的Hash算法,由于其均衡性、持久性的映射特点,被广泛的应用于负载均衡领域,如nginx和memcached都采用了一致性Hash来作为集群负载均衡的方案。本文将介绍一致性Hash的基本思路,并讨论其在分布式缓存集群负载均衡中的应用。同时也会进行相应的代码测试来验证其算法特性,并给出和其他负载均衡方案的一些对比。一致性Hash算法简介在了解一致性Hash算法之前,先来讨论一下Hash本身的特点。普通的Hash函数最大的作用是散列,或者说是将一系列在形式上具有相似性转载 2020-07-07 03:41:36 · 360 阅读 · 0 评论 -
全面剖析Redis Cluster(3.X版本)原理和应用
全面剖析Redis Cluster原理和应用1.Redis Cluster总览1.1 设计原则和初衷在官方文档Cluster Spec中,作者详细介绍了Redis集群为什么要设计成现在的样子。最核心的目标有三个:性能:这是Redis赖以生存的看家本领,增加集群功能后当然不能对性能产生太大影响,所以Redis采取了P2P而非Proxy方式、异步复制、客户端重定向等设计,而牺牲了部分的一致性、使用性。 水平扩展:集群的最重要能力当然是扩展,文档中称可以线性扩展到1000结点。 可用性:在Cl转载 2020-06-21 00:40:31 · 350 阅读 · 0 评论 -
redis cluster 分片算法
redis cluster:(1)自动将数据进行分片,每个master上放一部分数据(2)提供内置的高可用支持,部分master不可用时,还是可以继续工作的分片算法:hash算法 -> 一致性hash算法(memcached) -> redis cluster,hash slot算法1、hash算法和弊端(大量缓存重建)2、一致性hash算法(自动缓存迁移)+虚拟节点(自动负载均衡)增加虚拟节点解决缓存热点问题3、redis cluster的..转载 2020-06-21 00:37:15 · 606 阅读 · 0 评论 -
redis-cluster 集群模式工作原理
面试题redis 集群模式的工作原理能说一下么?在集群模式下,redis 的 key 是如何寻址的?分布式寻址都有哪些算法?了解一致性 hash 算法吗?面试官心理分析在前几年,redis 如果要搞几个节点,每个节点存储一部分的数据,得借助一些中间件来实现,比如说有codis,或者twemproxy,都有。有一些 redis 中间件,你读写 redis 中间件,redis 中间件负责将你的数据分布式存储在多台机器上的 redis 实例中。这两年,redis 不断在发展,redis 也不断有新..转载 2020-06-21 00:35:33 · 416 阅读 · 0 评论 -
Redis-Cluster集群搭建教程
本教程是利用redis6.0版本进行搭建的集群方式,因为redis发布了5.0之后推出了很多新的特性,其中一点就是放弃Ruby的集群方式,改用的C语言编写的redis-cli,使redis集群构建方式复杂度大大降低edis-cluster架构图(三主三从6个节点的配置)redis-cluster架构总结: 1)、无中心化就是所谓的去中心化(客户端与redis节点直连,不需要中间proxy层.客户端不需要连接集群所有节点,连接集群中任何一个可用节点即可) 2)、在线自动扩容缩容 3)转载 2020-06-21 00:13:39 · 525 阅读 · 0 评论 -
面试中经常被问到的 Redis 持久化与恢复,该如何解决
转载:https://blog.csdn.net/qq_42882671/article/details/86595236一、前言本文主要讲了 Redis 的持久化相关功能,持久化一直是影响 Redis 性能的高发地,也是面试中经常被问到的。包括 RDB 相关的特定和优缺点,AOF 的优缺点,事实上,由于 RDB 的数据实时性问题,目前用 AOF 比较多了。而持久化恢复也是优先 AOF。...转载 2019-06-14 16:52:20 · 220 阅读 · 0 评论 -
Redis面试题
1、什么是Redis?简述它的优缺点?Redis本质上是一个Key-Value类型的内存数据库,很像memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据flush到硬盘上进行保存。因为是纯内存操作,Redis的性能非常出色,每秒可以处理超过 10万次读写操作,是已知性能最快的Key-Value DB。Redis的出色之处不仅仅是性能,Redis最大的魅...转载 2019-03-24 17:09:15 · 752 阅读 · 0 评论 -
深入剖析Nodejs的异步IO
转载:http://blog.csdn.net/yezhenxu1992/article/details/51731237前言:Nodejs最赖以自豪的优势莫过于“单线程实现异步IO”了,也许你仍然丈二和尚摸不着头脑,Nodejs自我标榜是单线程,还能实现异步IO操作,这两者难道不是相互矛盾的么?葫芦里到底藏着什么药? 且听我娓娓道来……一、首先,看看Nodejs的架构图转载 2017-08-09 01:37:23 · 583 阅读 · 0 评论 -
memcache、redis原理对比
转载:http://blog.csdn.net/suifeng3051/article/details/23739295一、问题: 数据库表数据量极大(千万条),要求让服务器更加快速地响应用户的需求。二、解决方案: 1.通过高速服务器Cache缓存数据库数据 2.内存数据库 (这里仅从数据缓存方面考虑,当然,后期可以转载 2017-06-12 16:51:03 · 404 阅读 · 0 评论 -
09 redis集群的搭建 以及遇到的问题
转载:http://blog.csdn.net/u011039332/article/details/52225895搭建环境介绍 : ubuntu12.04 + redis3.2.3一台虚拟机, 启动6个redis服务器, 搭建伪分布式的redis集群redis 官网 Cluster相关 http://redis.io/topics/cluster-tutor转载 2017-06-08 16:40:36 · 467 阅读 · 0 评论 -
Redis Sentinel 机制与用法(二)
转载:https://segmentfault.com/a/1190000002685515概述Redis-Sentinel是Redis官方推荐的高可用性(HA)解决方案,当用Redis做Master-slave的高可用方案时,假如master宕机了,Redis本身(包括它的很多客户端)都没有实现自动进行主备切换,而Redis-sentinel本身也是一个独立运行的进程,它转载 2017-06-06 00:14:57 · 421 阅读 · 0 评论 -
Redis Sentinel机制与用法(一)
转载:https://segmentfault.com/a/1190000002680804概述Redis-Sentinel是Redis官方推荐的高可用性(HA)解决方案,当用Redis做Master-slave的高可用方案时,假如master宕机了,Redis本身(包括它的很多客户端)都没有实现自动进行主备切换,而Redis-sentinel本身也是一个独立运行的进程,它转载 2017-06-06 00:14:00 · 282 阅读 · 0 评论 -
twemproxy集群生产总结
转载:http://mdba.cn/2016/03/30/redis-twemproxy%E9%9B%86%E7%BE%A4%E7%94%9F%E4%BA%A7%E6%80%BB%E7%BB%93/?utm_source=tuicool&utm_medium=referraltwemproxy最早是2014年8.14大促开始使用的,当年也是史无前例的大促活动–撒娇节。之后就开始野蛮生长转载 2017-06-05 23:59:55 · 1448 阅读 · 0 评论 -
Lua: 给 Redis 用户的入门指导
Lua: 给 Redis 用户的入门指导可能你已经听说过Redis 中嵌入了脚本语言,但是你还没有亲自去尝试吧? 这个入门教程会让你学会在你的Redis 服务器上使用强大的lua语言。 Hello, Lua! 我们的第一个Redis Lua 脚本仅仅返回一个字符串,而不会去与redis 以任何有意义的方式交互。1local msg = "H转载 2014-07-16 00:12:27 · 1064 阅读 · 0 评论 -
redis 持久化(persistence)
文章转自:http://redis.readthedocs.org/en/latest/topic/persistence.html持久化(persistence)本文档翻译自 http://redis.io/topics/persistence 。这篇文章提供了 Redis 持久化的技术性描述,推荐所有 Redis 用户阅读。要更广泛地了解 Redis转载 2014-12-18 04:15:46 · 634 阅读 · 0 评论 -
Redis持久化实践及灾难恢复模拟
文章转自:http://heylinux.com/archives/1932.htmlRedis持久化实践及灾难恢复模拟参考资料:Redis Persistence http://redis.io/topics/persistenceGoogle Groups https://groups.google.com/forum/?fromgroups=#!forum/r转载 2014-12-18 04:19:41 · 683 阅读 · 0 评论 -
Redis命令总结
连接操作相关的命令quit:关闭连接(connection)auth:简单密码认证持久化save:将数据同步保存到磁盘bgsave:将数据异步保存到磁盘lastsave:返回上次成功将数据保存到磁盘的Unix时戳shundown:将数据同步保存到磁盘,然后关闭服务远程服务控制info:提供服务器的信息和统计monitor:实时转储收到的请求slaveof:改转载 2014-12-11 04:31:07 · 605 阅读 · 0 评论 -
redis配置文件详解
配置文件参数说明: 1. Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程 daemonize no2. 当Redis以守护进程方式运行时,Redis默认会把pid写入/var/run/redis.pid文件,可以通过pidfile指定 pidfile /var/run/redis.pid3. 指定Redis监听端口,默认端口转载 2015-03-22 02:10:52 · 986 阅读 · 0 评论 -
Linux下redis的安装
转载:http://www.cnblogs.com/_popc/p/3684835.html第一部分:安装redis 希望将redis安装到此目录 1/usr/local/redis希望将安装包下载到此目录 1/usr/local/转载 2016-07-18 18:14:21 · 321 阅读 · 0 评论 -
Redis和Memcached的区别
转载:https://www.biaodianfu.com/redis-vs-memcached.htmlRedis的作者Salvatore Sanfilippo曾经对这两种基于内存的数据存储系统进行过比较:Redis支持服务器端的数据操作:Redis相比Memcached来说,拥有更多的数据结构和并支持更丰富的数据操作,通常在Memcached里,你需要将数据拿到客户端来进行类似转载 2017-02-06 03:27:02 · 1117 阅读 · 0 评论 -
redis持久化RDB和AOF
转载:https://my.oschina.net/davehe/blog/174662Redis 持久化:提供了多种不同级别的持久化方式:一种是RDB,另一种是AOF.RDB 持久化可以在指定的时间间隔内生成数据集的时间点快照(point-in-time snapshot)。AOF 持久化记录服务器执行的所有写操作命令,并在服务器启动时,通过重新执行这些命令来还原数据集。 A转载 2017-02-07 02:02:34 · 242 阅读 · 0 评论 -
Redis持久化存储(AOF与RDB两种模式)
转载:http://blog.csdn.net/canot/article/details/52886923Redis中数据存储模式有2种:cache-only,persistence;cache-only即只做为“缓存”服务,不持久数据,数据在服务终止后将消失,此模式下也将不存在“数据恢复”的手段,是一种安全性低/效率高/容易扩展的方式;persistence即为内存中的转载 2017-02-07 02:07:34 · 759 阅读 · 0 评论 -
缓存穿透,缓存击穿,缓存雪崩解决方案分析
转载:http://blog.csdn.net/zeb_perfect/article/details/54135506前言设计一个缓存系统,不得不要考虑的问题就是:缓存穿透、缓存击穿与失效时的雪崩效应。缓存穿透缓存穿透是指查询一个一定不存在的数据,由于缓存是不命中时被动写的,并且出于容错考虑,如果从存储层查不到数据则不写入缓存,这将导致这个存在的数据每次请求都要到存储转载 2017-02-28 14:06:44 · 1877 阅读 · 0 评论 -
Redis与Memcached的区别
转载:http://blog.csdn.net/u014481096/article/details/50824372Redis与Memcached的区别传统MySQL+ Memcached架构遇到的问题 实际MySQL是适合进行海量数据存储的,通过Memcached将热点数据加载到cache,加速访问,很多公司都曾经使用过这样的架构,但随着业转载 2017-02-12 17:08:58 · 289 阅读 · 0 评论 -
redis sharding方案
转载:http://www.open-open.com/lib/view/open1427337394074.htmlRedis集群的目的是实现数据的横向伸缩,把一块数据分片保存到多个机器,可以横向扩展数据库大小,扩展带宽,计算能力等。 实现数据分片(集群)方式大致有三种: (1)客户端实现数据分片 即客户端自己计算数据的key应该在哪个机器上存储和查找,此方法转载 2017-06-05 16:23:53 · 7540 阅读 · 0 评论 -
Redis 主从 Replication 的配置
转载:https://segmentfault.com/a/1190000002692598本专栏与Redis相关的文章Redis Sentinel机制与用法(一)Redis Sentinel机制与用法(二)Jedis的JedisSentinelPool源代码分析Jedis的Sharded源代码分析Redis 主从 Replication 的配置详解Redis SO转载 2017-06-05 18:10:04 · 322 阅读 · 0 评论 -
Twemproxy 介绍与使用
转载:http://www.cnblogs.com/gomysql/p/4413922.htmlTwemproxy是一种代理分片机制,由Twitter开源。Twemproxy作为代理,可接受来自多个程序的访问,按照路由规则,转发给后台的各个Redis服务器,再原路返回。该方案很好的解决了单个Redis实例承载能力的问题。当然,Twemproxy本身也是单点,需要用Keepalived做高可转载 2017-06-05 18:48:41 · 417 阅读 · 0 评论 -
Redis 存储分片之代理服务Twemproxy 测试
Twemproxy 测试转载 2017-06-05 23:49:32 · 528 阅读 · 0 评论 -
Redis-benchmark使用总结
Redis-benchmark为Redis性能测试工具。指令说明:Usage: redis-benchmark [-h ] [-p ] [-c ] [-n [-k ] -h Server hostname (default 127.0.0.1) -p Server port (default 6379) -s Server转载 2014-06-27 16:29:43 · 792 阅读 · 0 评论