
redis
文章平均质量分 89
30年后世界会是怎样
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
RedisCluster槽
亲爱的同学们,你是否使用过Redis集群呢?那Redis集群的原理又是什么呢?记住下面两句话:Redis Sentinal着眼于高可用,在master宕机时会自动将slave提升为master,继续提供服务。 Redis Cluster着眼于扩展性,在单个redis内存不足时,使用Cluster进行分片存储。一、数据分片策略布式数据存储方案中最为重要的一点就是数据分片,也就是所谓的 Sharding。为了使得集群能够水平扩展,首要解决的问题就是如何将整个数据集按照一定的规则分配到多个节点上,常用转载 2021-04-23 09:10:52 · 590 阅读 · 0 评论 -
reids集群
一、集群的作用集群,即Redis Cluster,是Redis 3.0开始引入的分布式存储方案。集群由多个节点(Node)组成,Redis的数据分布在这些节点中。集群中的节点分为主节点和从节点:只有主节点负责读写请求和集群信息的维护;从节点只进行主节点数据和状态信息的复制。集群的作用,可以归纳为两点:1、数据分区:数据分区(或称数据分片)是集群最核心的功能。集群将数据分散到多个节点,一方面突破了Redis单机内存大小的限制,存储容量大大增加;另一方面每个主节点都可以对外提供读服务和写服务转载 2021-04-23 09:11:20 · 269 阅读 · 0 评论 -
redis哨兵
一、作用和架构1. 作用在介绍哨兵之前,首先从宏观角度回顾一下Redis实现高可用相关的技术。它们包括:持久化、复制、哨兵和集群,其主要作用和解决的问题是:持久化:持久化是最简单的高可用方法(有时甚至不被归为高可用的手段),主要作用是数据备份,即将数据存储在硬盘,保证数据不会因进程退出而丢失。 复制:复制是高可用Redis的基础,哨兵和集群都是在复制基础上实现高可用的。复制主要实现了数据的多机备份,以及对于读操作的负载均衡和简单的故障恢复。缺陷:故障恢复无法自动化;写操作无法负载均衡;存储能.转载 2021-04-23 09:11:08 · 182 阅读 · 0 评论 -
redis持久化
一、Redis高可用概述在介绍Redis高可用之前,先说明一下在Redis的语境中高可用的含义。我们知道,在web服务器中,高可用是指服务器可以正常访问的时间,衡量的标准是在多长时间内可以提供正常服务(99.9%、99.99%、99.999% 等等)。但是在Redis语境中,高可用的含义似乎要宽泛一些,除了保证提供正常服务(如主从分离、快速容灾技术),还需要考虑数据容量的扩展、数据安全不会丢失等。在Redis中,实现高可用的技术主要包括持久化、复制、哨兵和集群,下面分别说明它们的作用,以及解决了转载 2021-04-22 19:12:34 · 191 阅读 · 0 评论 -
redis内存模型
前言Redis是目前最火爆的内存数据库之一,通过在内存中读写数据,大大提高了读写速度,可以说Redis是实现网站高并发不可或缺的一部分。我们使用Redis时,会接触Redis的5种对象类型(字符串、哈希、列表、集合、有序集合),丰富的类型是Redis相对于Memcached等的一大优势。在了解Redis的5种对象类型的用法和特点的基础上,进一步了解Redis的内存模型,对Redis的使用有很大帮助,例如:1、估算Redis内存使用量。目前为止,内存的使用成本仍然相对较高,使用内存不能无所顾忌;根转载 2021-04-22 19:06:01 · 200 阅读 · 0 评论 -
redis主从复制
前言Redis高可用的方案包括持久化、主从复制(及读写分离)、哨兵和集群。其中持久化侧重解决的是Redis数据的单机备份问题(从内存到硬盘的备份);而主从复制则侧重解决数据的多机热备。此外,主从复制还可以实现负载均衡和故障恢复。这篇文章中,将详细介绍Redis主从复制的方方面面,包括:如何使用主从复制、主从复制的原理(重点是全量复制和部分复制、以及心跳机制)、实际应用中需要注意的问题(如数据不一致问题、复制超时问题、复制缓冲区溢出问题)、主从复制相关的配置(重点是repl-t转载 2021-04-22 18:56:16 · 177 阅读 · 0 评论 -
Redis分片(分布式缓存)
分片(partitioning)就是将你的数据拆分到多个 Redis 实例的过程,这样每个实例将只包含所有键的子集.1 分片何用Redis 的分片承担着两个主要目标:允许使用很多电脑的内存总和来支持更大的数据库。没有分片,你就被局限于单机能支持的内存容量。 允许伸缩计算能力到多核或多服务器,伸缩网络带宽到多服务器或多网络适配器。2 分片基础有很多不同的分片标准(criteria).假想我们有 4 个 Redis 实例 R0,R1,R2,R3,还有很多表示用户的键,像 user:1,us转载 2021-04-22 17:16:48 · 630 阅读 · 0 评论 -
redis切片
redis分片单台redis的管理内存能力是有限的,如果保存有海量的缓存数据,则一台redis无法操作那么就要对redis进行扩容,redis分片主要目的实现redis内存扩容,对用户而言使用的就是一大台redis,但是内部每个redis中保存的数据都是不同的分片原理ShardedJedis是通过一致性哈希来实现分布式缓存的,通过一定的策略把不同的key分配到不同的redis server ,达到横向扩展的目的的hash一致性原理1、0到2^32-1数字组成一个hash圆环;转载 2021-04-22 17:06:06 · 372 阅读 · 0 评论 -
如何解决Redis雪崩、穿透、并发等5大难题
缓存雪崩数据未加载到缓存中,或者缓存同一时间大面积的失效,从而导致所有请求都去查数据库,导致数据库CPU和内存负载过高,甚至宕机。比如一个雪崩的简单过程:1、redis集群大面积故障2、缓存失效,但依然大量请求访问缓存服务redis3、redis大量失效后,大量请求转向到mysql数据库4、mysql的调用量暴增,很快就扛不住了,甚至直接宕机5、由于大量的应用服务依赖mysql和redis的服务,这个时候很快会演变成各服务器集群的雪崩,最后网站彻底崩溃。如何预防缓存雪崩:转载 2021-04-19 09:42:01 · 171 阅读 · 0 评论 -
Redis为什么是单线程,高并发快的3大原因详解
Redis的高并发和快速原因1.redis是基于内存的,内存的读写速度非常快;2.redis是单线程的,省去了很多上下文切换线程的时间;3.redis使用多路复用技术,可以处理并发的连接。非阻塞IO 内部实现采用epoll,采用了epoll+自己实现的简单的事件框架。epoll中的读、写、关闭、连接都转化成了事件,然后利用epoll的多路复用特性,绝不在io上浪费一点时间。下面重点介绍单线程设计和IO多路复用核心设计快的原因。为什么Redis是单线程的1.官方答案因为R.转载 2021-04-19 09:39:14 · 195 阅读 · 0 评论 -
Redis缓存和MySQL数据一致性方案详解
一、需求起因在高并发的业务场景下,数据库大多数情况都是用户并发访问最薄弱的环节。所以,就需要使用redis做一个缓冲操作,让请求先访问到redis,而不是直接访问MySQL等数据库。这个业务场景,主要是解决读数据从Redis缓存,一般都是按照下图的流程来进行业务操作。读取缓存步骤一般没有什么问题,但是一旦涉及到数据更新:数据库和缓存更新,就容易出现缓存(Redis)和数据库(MySQL)间的数据一致性问题。不管是先写MySQL数据库,再删除Redis缓存;还是先删除缓存,再写库,都有转载 2021-04-19 09:37:26 · 197 阅读 · 0 评论 -
redis实现分布式锁
在很多场景中,我们为了保证数据的最终一致性,需要很多的技术方案来支持,比如分布式事务、分布式锁等。那具体什么是分布式锁,分布式锁应用在哪些业务场景、如何来实现分布式锁呢?今天来探讨分布式锁这个话题。什么是分布式锁要介绍分布式锁,首先要提到与分布式锁相对应的是线程锁、进程锁。1.线程锁主要用来给方法、代码块加锁。当某个方法或代码使用锁,在同一时刻仅有一个线程执行该方法或该代码段。线程锁只在同一JVM中有效果,因为线程锁的实现在根本上是依靠线程之间共享内存实现的,比如Synchronized转载 2021-04-19 09:30:26 · 234 阅读 · 0 评论 -
16张图带你如何从0到1构建一个稳定、高性能的Redis集群?
现如今 Redis 变得越来越流行,几乎在很多项目中都要被用到,不知道你在使用 Redis 时,有没有思考过,Redis 到底是如何稳定、高性能地提供服务的?你也可以尝试回答一下以下这些问题: 我使用 Redis 的场景很简单,只使用单机版 Redis 会有什么问题吗? 我的 Redis 故障宕机了,数据丢失了怎么办?如何能保证我的业务应用不受影响? 为什么需要主从集群?它有什么优势? 什么是分片集群?我真的需要分片集群吗? ... 如果你对 Redis转载 2021-04-16 09:31:10 · 114 阅读 · 0 评论 -
Linux下Redis的安装和部署
一、Redis介绍Redis是当前比较热门的NOSQL系统之一,它是一个key-value存储系统。和Memcache类似,但很大程度补偿了Memcache的不足,它支持存储的value类型相对更多,包括string、list、set、zset和hash。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作。在此基础上,Redis支持各种不同方式的排序。和Memcache一样,Redis数据都是缓存在计算机内存中,不同的是,Memcache只能将数据缓存到内存中,无转载 2020-06-09 05:05:36 · 238 阅读 · 0 评论 -
Redis线程模型
Redis基于Reactor 模式开发了自己的网络事件处理器: 这个处理器被称为文件事件处理器(file event handler):文件事件处理器使用I/O 多路复用(multiplexing)程序来同时监听多个套接字, 并根据套接字目前执行的任务来为套接字关联不同的事件处理器。 当被监听的套接字准备好执行连接应答(accept)、读取(read)、写入(write)、关闭(close)等操作时, 与操作相对应的文件事件就会产生, 这时文件事件处理器就会调用套接字之前关联好的事件处理器来处理...转载 2020-06-02 21:52:02 · 130 阅读 · 0 评论 -
redis应用场景
Redis作为一个非关系型数据库,除了在访问速度上拥有显著优势外,其本身支持的多种数据类型也非常有用,能覆盖系统开发中的很多应用场景。下面列举的场景有的是从网上其他人的博客里看到的,有的自己开发时尝试过的一些解决方案后记录下来的,希望能给以后的开发带来启发。在说应用场景前先说一些是否觉得使用Redis的建议使用建议Redis 速度快是建立在内存数据库基础上的,但是一台服务器的内存要比磁盘金贵许多,所以在项目初期不要想什么都往 Redis 里放,这样当数据量上来后很快内存就会不够用,反而得不偿失。转载 2020-05-20 19:37:25 · 242 阅读 · 0 评论 -
Redis 持久化
Redis 持久化Redis 提供了不同级别的持久化方式:RDB持久化方式能够在指定的时间间隔能对你的数据进行快照存储. AOF持久化方式记录每次对服务器写的操作,当服务器重启的时候会重新执行这些命令来恢复原始的数据,AOF命令以redis协议追加保存每次写的操作到文件末尾.Redis还能对AOF文件进行后台重写,使得AOF文件的体积不至于过大. 如果你只希望你的数据在服务器运行的时候存在,你也可以不使用任何持久化方式. 你也可以同时开启两种持久化方式, 在这种情况下, 当redis重启的时候转载 2020-05-20 19:33:07 · 173 阅读 · 0 评论 -
redis事务
事务MULTI、EXEC、DISCARD和WATCH是 Redis 事务相关的命令。事务可以一次执行多个命令, 并且带有以下两个重要的保证: 事务是一个单独的隔离操作:事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中,不会被其他客户端发送来的命令请求所打断。 事务是一个原子操作:事务中的命令要么全部被执行,要么全部都不执行。 EXEC命令负责触发并执行事务中的所有命令:如果客户端在使用MULTI开启了一个事务之后,却因为断线而没有成功执行EXEC...转载 2020-05-20 19:24:11 · 149 阅读 · 0 评论 -
redis基础命令(增删改查的基础)
1.redis-cli连接本地redis服务器2.redis-cli -h host -p port -a password连接远程redis服务器3.auth password需要密码的时候使用密码4.keys pattern获取符合pattern的key...原创 2020-03-10 13:48:42 · 383 阅读 · 0 评论 -
Redis分布式解决方案 (consistent hash)
传统的redis分布式算法:比如现在有一个数据,使用redis存储时,会现将其进行hash计算,然后根据计算的hash值进行取模,根据取模的结果将数据缓存到与结果值对应的redis中。算法如下:案例1:传统分布式算法 使用传统的redis分布式算法的结果如下:根据取模的结果,将数据存储到相应的redis中现在由于业务的需求,我们需要添加一台redis,添加后。就变成了...转载 2019-12-03 17:50:58 · 245 阅读 · 0 评论 -
redis cluster 集群高可用
Redis集群redis cluster 是redis官方提供的分布式解决方案,在3.0版本后推出的,有效地解决了redis分布式的需求,当一个redis节点挂了可以快速的切换到另一个节点。当遇到单机内存、并发等瓶颈时,可以采用分布式方案要解决问题。分布式redis数据库1、分区和槽slotredis cluster中有一个16384(2^4 * 2^10)长度的槽的概念...转载 2019-12-03 17:45:00 · 217 阅读 · 0 评论 -
40道redis面试题
Redis 面试题1、什么是 Redis?.2、Redis 的数据类型?3、使用 Redis 有哪些好处?4、Redis 相比 Memcached 有哪些优势?5、Memcache 与 Redis 的区别都有哪些?6、Redis 是单进程单线程的?7、一个字符串类型的值能存储最大容量是多少?8、Redis 的持久化机制是什么?各自的优缺点?9、Redis 常见性...转载 2019-12-02 09:51:51 · 192 阅读 · 0 评论 -
redis知识总结
Redis基础篇Redis数据结构 String 1、概念:string是redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个value。 string类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象 。 string类型是Redis最基本的数据类型,一个键最大能存储512MB。 2、实例:...转载 2019-11-21 10:01:48 · 218 阅读 · 0 评论 -
redis的key能查到,但是删除不掉
问题描述:在RedisStudio中能看到有key存在,但是显示为"草",点击就会提示key不存在,请重载。右键删除也没有任何反应。在命令行中,通过keys * 能查到key,很长的字符串,类似于"\xac\xed\x00...",del"\xac\xed\x00..."也删除不掉。利用linux的管道以及命令xargs批量删除,类似这种:redis-cli keys ...原创 2019-10-21 10:52:33 · 6262 阅读 · 3 评论