Redis
文章平均质量分 79
张俊杰zjj
一个大龄的码农.目前是Java+Python开发,业余时间研究减肥健身养生,后期可能会去做减肥健身博主.
展开
-
Linux centos7安装redis5
1.redis 5 的下载解压下载:wget http://download.redis.io/releases/redis-5.0.3.tar.gz解压:tar -zxvf redis-5.0.3.tar.gz移动到/usr/local目录下:mvredis-5.0.3 /usr/local/ 2.Redis安装及验证Redis主要运行在Linux、BSD、Mac中,如果在make阶段报错,最有可能是你的环境没有安装C语言的编译环境,需要安装gcc,安装依赖:命令:yum install g原创 2021-06-11 13:22:16 · 231 阅读 · 1 评论 -
Redis的线程模型 IO多路复用
redis是基于reactor模式开发的网络事件处理器,这个处理器叫做文件事件处理器,file event handler.这个文件事件处理器是单线程的,所以redis才叫单线程模型,采用IO多路复用技术同时监听多个socket,根据socket上的事件来选择对应的事件处理器来处理事件.①.在Redis启动及初始化的时候,Redis会(预先)将连接应答处理器跟"AE_READABLE"事件关联起来,接着如果一个客户端向Redis发起连接,此时就会产生一个"AE_READABLE"事件,然后由连接应答处理原创 2021-03-31 12:10:33 · 220 阅读 · 0 评论 -
Redisson分布式锁 项目落地实战
转载地址https://www.cnblogs.com/qdhxhz/p/11059200.html项目落地实现这篇讲下通过Redisson实现分布式锁的项目实现,我会把项目放到GitHub,该项目可以直接运用于实际开发中,作为分布式锁使用。一、项目概述1、技术架构项目总体技术选型SpringBoot2.1.5 + Maven3.5.4 + Redisson3.5.4 + lombok(插件)2、加锁方式该项目支持 自定义注解加锁 和 常规加锁 两种模式自定义注解加锁 @Distri转载 2021-02-09 16:33:15 · 467 阅读 · 0 评论 -
Redisson分布式锁RedissonLock介绍
转载地址https://www.cnblogs.com/qdhxhz/p/11055426.htmlRedissonLock这篇主要讲RedissonLock和RLock。Redisson分布式锁的实现是基于RLock接口,RedissonLock实现RLock接口。一、RLock接口1、概念public interface RLock extends Lock, RExpirable, RLockAsync很明显RLock是继承Lock锁,所以他有Lock锁的所有特性,比如lock、unl转载 2021-02-09 16:32:14 · 5884 阅读 · 0 评论 -
Redisson分布式锁原理
转载地址https://www.cnblogs.com/qdhxhz/p/11046905.htmlRedisson原理本文只介绍Redisson如何实现分布式锁的原理。其它的会在接下来的博客讲,最后有关Redisson实现分布式锁的项目代码的博客中会放上项目源码到GitHub上。一、高效分布式锁当我们在设计分布式锁的时候,我们应该考虑分布式锁至少要满足的一些条件,同时考虑如何高效的设计分布式锁,这里我认为以下几点是必须要考虑的。1、互斥在分布式高并发的条件下,我们最需要保证,同一时刻只能有一转载 2021-02-09 16:31:02 · 1378 阅读 · 0 评论 -
RedLock分布式锁原理
Redlock分布式锁传统的Redis分布式锁缺陷使用传统的Redis分布式锁:SET key_name my_random_value NX PX 30000NX 表示if not exist 就设置并返回True,否则不设置并返回FalsePX 表示过期时间用毫秒级, 30000 表示这些毫秒时间后此key过期传统的Redis分布式锁有缺点:只作用在一个Redis节点上,即使Redis通过sentinel保证高可用,如果这个master节点由于某些原因发生了主从切换,那么就会出现锁丢失的情原创 2021-02-09 16:05:18 · 820 阅读 · 0 评论 -
redis支持的数据类型和命令
转载地址https://www.cnblogs.com/dudu2mama/p/11366235.html以下是摘自redis官网,描述了redis支持了哪些数据类型:It supports data structures such as strings, hashes, lists, sets, sorted sets with range queries, bitmaps, hyperloglogs, geospatial indexes with radius queries and strea转载 2021-02-08 13:37:51 · 216 阅读 · 0 评论 -
使用Redis做过异步队列吗,是如何实现的?
Redis设计用来做缓存的,但是由于它自身的某种特性使得它可以用来做消息队列。它有几个阻塞式的API可以使用,正是这些阻塞式的API让其有能力做消息队列;另外,做消息队列的其他特性例如FIFO(先入先出)也很容易实现,只需要一个list对象从头取数据,从尾部塞数据即可;Redis能做消息队列还得益于其list对象blpop brpop接口以及Pub/Sub(发布/订阅)的某些接口,它们都是阻塞版的,所以可以用来做消息队列。(List : lpush / rpop)方式一:生产者消费者模式使用lis转载 2021-02-08 11:19:38 · 517 阅读 · 0 评论 -
Redis一致性Hash原理与实现
转载地址https://www.jianshu.com/p/528ce5cd7e8f前言互联网公司中,绝大部分都没有马爸爸系列的公司那样财大气粗,他们即没有强劲的服务器、也没有钱去购买昂贵的海量数据库。那他们是怎么应对大数据量高并发的业务场景的呢?这个和当前的开源技术、海量数据架构都有着不可分割的关系。比如通过mysql、nginx等开源软件,通过架构和低成本的服务器搭建千万级别的用户访问系统。怎么样搭建一个好的系统架构,这个话题我们能聊上个七天七夜。这里我主要结合Redis集群来讲一下一致性Ha转载 2021-02-08 10:13:07 · 752 阅读 · 0 评论 -
Redis三种集群方案
01.Redis主从架构(读写分离)现在企业用主从架构的不多了,搭建过程看这里:https://www.yuque.com/crow/xq7vsx/17705如果你redis是单击模式的话,假如你客户端访问的话,万一redis挂了没办法重启,那个整个架构就崩溃了.主从架构就是你操作redis还是操作 master ,然后master里面的数据会实时同步到slave里面去,万一master挂掉了,我可以把某一个slave变成新的master.如果你为master配置了一个slave,不管这个sl原创 2021-02-08 10:03:40 · 2592 阅读 · 3 评论 -
Redis的pipeline管道
使用场景当有多个操作命令需要被迅速提交至服务器端,但用户并不依赖每个操作返回的响应结果,对结果响应也无需立即获得,那么管道就可以用来作为优化性能的批处理工具。性能提升的原因主要是减少了 TCP 连接中交互往返的开销。 由于Redis一般处理毫秒级请求,所以视pipeline内容数量可以减少tcp建立次数可以提升3~5倍性能但是在原生情况下无法支持redis-clusterpipeline不是一个事务,不能保证里面的一组命令一起成功或者失败。1.背景:没有pipeline之前,一般的redis命令的执原创 2021-02-08 09:29:17 · 246 阅读 · 0 评论 -
Redis事务
(一)Redis事务的概念:Redis 事务的本质是一组命令的集合。事务支持一次执行多个命令,一个事务中所有命令都会被序列化。在事务执行过程,会按照顺序串行化执行队列中的命令,其他客户端提交的命令请求不会插入到事务执行命令序列中。 总结说:redis事务就是一次性、顺序性、排他性的执行一个队列中的一系列命令。redis的事物与mysql事物的最大区别是redis事物不支持事物回滚Redis事务没有隔离级别的概念: 批量操作在发送 EXEC 命令前被放入队列缓存,并不会被实际执行,也就不存在事务原创 2021-02-08 09:27:29 · 86 阅读 · 0 评论 -
redis主从复制(replication)、哨兵(sentinel)、集群(cluster)
一、Redis主从复制主从复制:主节点负责写数据,从节点负责读数据,主节点定期把数据同步到从节点保证数据的一致性1. 主从复制的相关操作配置主从复制方式一、新增redis6380.conf, 加入 slaveof 192.168.152.128 6379, 在6379启动完后再启6380,完成配置;配置主从复制方式二、redis-server --slaveof 192.168.152.128 6379 临时生效查看状态:info replication断开主从复制:在slave节点,执行63转载 2021-02-08 08:57:30 · 456 阅读 · 0 评论 -
Redis缓存失效策略
一、背景线上你写代码的时候,想当然的认为写进 redis 的数据就一定会存在,后面导致系统各种 bug,谁来负责?常见的有两个问题:往 redis 写入的数据怎么没了?可能有同学会遇到,在生产环境的 redis 经常会丢掉一些数据,写进去了,过一会儿可能就没了。我的天,同学,你问这个问题就说明 redis 你就没用对啊。redis 是缓存,你给当存储了是吧?啥叫缓存?用内存当缓存。内存是无限的吗,内存是很宝贵而且是有限的,磁盘是廉价而且是大量的。可能一台机器就几十个 G 的内存,但是可以有几个 T转载 2021-02-08 08:54:37 · 1939 阅读 · 1 评论 -
Redis过期策略
Redis过期策略(一)Redis内存删除过程在服务器中内存是很宝贵很有限的,而硬盘是廉价而且有大量数据可用的,假设Redis最多能存10个G,如果你存了20个G的话,Redis会给10个G的数据干掉(不常用的数据干掉).只保留10个G的数据.假如你给redis写入5G的内存的数据,设置了1个小时过期,等一个小时之后,虽然你查询是查不到过期的数据了,但是此时redis还是占用了5个G的内存.redis采用的是定期删除和惰性删除定期删除定期删除是Redis默认每隔100毫秒就随机抽取一些设置过期时原创 2021-02-08 08:46:58 · 268 阅读 · 0 评论