
redis
文章平均质量分 91
波波仔86
生活与技术并发!
展开
-
redis的五种数据结构原理分析
Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件. 它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 与范围查询, bitmaps, hyperloglogs和 地理空间(geospatial) 索引半径查询。简单来说,Redis的数据结构主要分为五种基本的数据结构+三种高级的数据结构。我们下面所要介绍的就是这五种基本的数据...转载 2021-01-11 22:51:08 · 648 阅读 · 0 评论 -
Redis三种模式对比
模式类型主从模式(redis2.8版本之前的模式)、哨兵sentinel模式(redis2.8及之后的模式)、redis cluster模式(redis3.0版本之后)主从模式原理同Mysql主从复制的原因一样,Redis虽然读取写入的速度都特别快,但是也会产生读压力特别大的情况。为了分担读压力,Redis支持主从复制,Redis的主从结构可以采用一主多从或者级联结构,Redis主从复制可以根据是否是全量分为全量同步和增量同步。下图为级联结构。优点:1、解决数据备份问题..转载 2021-01-10 21:33:17 · 243 阅读 · 0 评论 -
Redis主从复制原理
和Mysql主从复制的原因一样,Redis虽然读取写入的速度都特别快,但是也会产生读压力特别大的情况。为了分担读压力,Redis支持主从复制,Redis的主从结构可以采用一主多从或者级联结构,Redis主从复制可以根据是否是全量分为全量同步和增量同步。下图为级联结构。复制过程从节点执行 slaveof 命令。 从节点只是保存了 slaveof 命令中主节点的信息,并没有立即发起复制。 从节点内部的定时任务发现有主节点的信息,开始使用 socket 连接主节点。 ...转载 2021-01-10 12:15:41 · 284 阅读 · 0 评论 -
解读I/O多路复用技术
前言当我们要编写一个echo服务器程序的时候,需要对用户从标准输入键入的交互命令做出响应。在这种情况下,服务器必须响应两个相互独立的I/O事件:1)网络客户端发起网络连接请求,2)用户在键盘上键入命令行。我们先等待哪个事件呢?没有哪个选择是理想的。如果在acceptor中等待一个连接请求,我们就不能响应输入的命令。类似地,如果在read中等待一个输入命令,我们就不能响应任何连接请求。针对这种困境的一个解决办法就是I/O多路复用技术。基本思路就是使用select函数,要求内核挂起进程,只有在一个或多个I/转载 2021-01-04 22:51:02 · 195 阅读 · 0 评论 -
redis过期策略及定期策略配置
redis服务器实际使用的过期键删除策略有两种:定期删除 惰性删除redis 会将每个设置了过期时间的 key 放入到一个独立的字典中,以后会定时遍历这个字典来删除到期的 key。除了定时遍历之外,它还会使用惰性策略来删除过期的 key,所谓惰性策略就是在客户端访问这个 key 的时候,redis 对 key 的过期时间进行检查,如果过期了就立即删除。定时删除是集中处理,惰性删除是零散处理。通过配合使用这两种删除策略,服务器可以很好地合理使用cpu时间和避免浪费内存空间之间取得平衡。1.定期转载 2021-01-06 22:47:09 · 1686 阅读 · 0 评论 -
Resisson实现Redis分布式锁的原理
一、写在前面现在面试,一般都会聊聊分布式系统这块的东西。通常面试官都会从服务框架(Spring Cloud、Dubbo)聊起,一路聊到分布式事务、分布式锁、ZooKeeper等知识。所以咱们这篇文章就来聊聊分布式锁这块知识,具体的来看看Redis分布式锁的实现原理。说实话,如果在公司里落地生产环境用分布式锁的时候,一定是会用开源类库的,比如Redis分布式锁,一般就是用Redisson框架就好了,非常的简便易用。大家如果有兴趣,可以去看看Redisson的官网,看看如何在项目中引入Redisson的转载 2020-11-21 22:40:11 · 368 阅读 · 0 评论 -
redis分布式锁原理与实现
分布式锁原理分布式锁,是控制分布式系统之间同步访问共享资源的一种方式。在分布式系统中,常常需要协调他们的动作。如果不同的系统或是同一个系统的不同主机之间共享了一个或一组资源,那么访问这些资源的时候,往往需要互斥来防止彼此干扰来保证一致性,在这种情况下,便需要使用到分布式锁。使用setnx、getset、expire、del这4个redis命令实现:setnx 是『SET if Not eXists』(如果不存在,则 SET)的简写。命令格式:SETNX key value;使用:只在键 key.转载 2020-11-21 21:45:00 · 499 阅读 · 1 评论 -
两种Redis持久化原理的详解
Redis为持久化提供了两种方式:RDB:在指定的时间间隔能对你的数据进行快照存储 AOF:记录每次对服务器写的操作,当服务器重启的时候会重新执行这些命令来恢复原始的数据。本文将通过下面内容的介绍,希望能够让大家更全面、清晰的认识这两种持久化方式,同时理解这种保存数据的思路,应用于自己的系统设计中。持久化的配置 RDB与AOF持久化的工作原理 如何从持久化中恢复数据 关于性能与实践建议持久化配置为了使用持久化的功能,我们需要先知道该如何开启持久化的功能。配置其实非常简单,这里说一转载 2020-09-20 22:46:14 · 325 阅读 · 0 评论 -
redisson分布式锁源码和原理浅析
之前写过一篇使用redisson完成简单的分布式锁的文章,https://blog.youkuaiyun.com/tianyaleixiaowu/article/details/90036180在redisson之前,很多人可能已经自己实现过基于redis的分布式锁,本身原理也比较简单,redis自身就是一个单线程处理器,具备互斥的特性,通过setNx,exist等命令就可以完成简单的分布式锁,处理好超时释放锁的逻辑即可。redisson在此基础上,加上了更多的逻辑控制和功能,譬如公平锁等。这一篇我们就来看看r转载 2020-09-06 23:16:27 · 183 阅读 · 0 评论 -
Redis Cluster数据分片机制
Redis 集群简介Redis Cluster 是 Redis 的分布式解决方案,在 3.0 版本正式推出,有效地解决了 Redis 分布式方面的需求。Redis Cluster 一般由多个节点组成,节点数量至少为 6 个才能保证组成完整高可用的集群,其中三个为主节点,三个为从节点。三个主节点会分配槽,处理客户端的命令请求,而从节点可用在主节点故障后,顶替主节点。如上图所示,该集群中包含 6 个 Redis 节点,3主3从,分别为M1,M2,M3,S1,S2,S3。除了主从 Redis 节点转载 2020-09-06 23:04:30 · 299 阅读 · 0 评论 -
Ubuntu安装Redis cluster集群模式
一、安装redis1、下载redis源码文件,并解压(我这里下载的是redis4,redis3版本才开始支持集群模式):2、进入解压目录,执行make:3、回到上层目录,创建一个redis文件夹,安装到此目录下:查看redis文件夹下生成了一个bin目录:二、redis多实例安装1、创建cluster目录:2、进入到cluster目录,创建6个文件夹7000、7001、7002、7003、7004、7005(实例的端口):3、在每个文件夹下创建redis.原创 2020-09-06 00:59:21 · 1376 阅读 · 0 评论 -
Windows下Redis主备集群及哨兵模式的搭建
1.redis主备集群本文所用redis版本为3.2.11.1下载redis链接:https://pan.baidu.com/s/1bjdoi1LO9qcC1mbPe9ts-Q提取码:isc91.2下载完成后解压,目录如图1.3复制一份解压后的redis,目录如图第一个redis的配置文件不用修改,点开第二个文件夹,修改redis.windows.conf首先找到port,修改端口号为6380然后找到slaveof <masterip> <mast转载 2020-09-05 16:12:24 · 867 阅读 · 0 评论 -
Redis哨兵模式详解
在主从模式的Redis系统中,从数据库在整个系统中起到了数据冗余备份和读写分离的作用,但是当数据库遇到异常中断服务后,我们只能通过手动的方式选择一个从数据库来升格为主数据库,显然这种方式很麻烦需要人工介入,这时通过哨兵模式可以实现自动化的系统监控和故障恢复。哨兵模式什么是哨兵 哨兵的作用是监控Redis系统的运行状态,功能包括以下两个: 序号 功能 1 监控主数据库和从数据库是否正常运行 ...转载 2020-09-05 12:16:17 · 414 阅读 · 0 评论 -
Windows下安装Redis教程
1、下载windows版redis现在官网以及没有下载windows地址,只能在github上下载,官网只提供linux版本的下载。github下载地址:https://github.com/MSOpenTech/redis/tags2、安装redis1.这里下载的是Redis-x64-3.2.100版本,我的电脑是win7 64位,所以下载64位版本的,在运行中输入cmd,然后把原创 2017-12-22 16:58:13 · 370 阅读 · 0 评论 -
Windows环境下redis配置文件中设置的密码没有生效
安装了redis服务后,发现在其配置文件redis.windows.conf(或redis.conf)设置了密码:requirepass 123456启动redis,执行config get requirepass发现配置密码没有生效。原因:问题在于我们启动redis服务时是直接在其安装目录中双击redis-server.exe启动的,这样启动的结果是,配置文件不会指定,此原创 2018-01-04 13:51:17 · 7253 阅读 · 8 评论 -
redis+mysq
一、常见架构1、mysql作为主库,redis作为缓存 这种情况下,redis起到了缓存的作用,当执行查询时,首先去redis中查找,如果没有找到,再去数据库中查找,响应请求的同时缓存一份数据到redis中,下次执行相同的查找直接从内存中响应,不再查找数据库。2、redis作为主库,mysql作为冷备库 借助于redis开发工具包,完成对redis的crud操作,这种情况下考虑...原创 2018-04-13 16:49:47 · 276 阅读 · 0 评论 -
Ubuntu18.04安装和配置redis
1、前提条件需要连接互联网,然后执行sudo apt-get update更新软件包。2、执行安装命令sudo apt-get install redis-server执行后如下图所示,我们输入y 确认安装并使用空间:但是安装报错了:修改配置文件/etc/redis/redis.cnf,把bind 127.0.0.1这一行注释,重启启动service redis-s...原创 2019-04-14 20:52:57 · 2722 阅读 · 1 评论 -
Jedis介绍及使用
1、Jedis介绍 Redis不仅是使用命令来操作,现在基本上主流的语言都有客户端支持,比如java、C、C#、C++、php、Node.js、Go等。在官方网站里列一些Java的客户端,有Jedis、Redisson、Jredis、JDBC-Redis、等其中官方推荐使用Jedis和Redisson。 在企业中用的最多的就是Jedis。Jedis提供了完整Redis命令,而Red...原创 2019-04-30 20:10:14 · 5527 阅读 · 1 评论 -
redis存储对象
redis已经应用相当广泛了,但redis本身并没有直接存储对象的方法,我们可以通过转换对象的方式来存储对象。大致总结了如下几种方案:方案一:序列化对象为二进制使用redis接口:jedis.get(byte[] key)jedis.set(byte[] key, byte[] value)至于序列化方式,我们有很多种选择,比如:Java serialize,P...原创 2019-04-30 21:09:25 · 3387 阅读 · 0 评论 -
为什么使用redis
1、 redis简介 redis是Nosql数据库中使用较为广泛的非关系型内存数据库,redis内部是一个key-value存储系统。它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set –有序集合)和hash(哈希类型,类似于Java中的map)。Redis基于内存运行并支持持久化的NoSQL数据库,转载 2017-12-11 19:41:20 · 1794 阅读 · 0 评论