2021
05-28
05-28
详解Redis实现限流的三种方式
面对越来越多的高并发场景,限流显示的尤为重要。 当然,限流有许多种实现的方式,Redis具有很强大的功能,我用Redis实践了三种的实现方式,可以较为简单的实现其方式。Redis不仅仅是可以做限流,还可以做数据统计,附近的人等功能,这些可能会后续写到。第一种:基于Redis的setnx的操作 我们在使用Redis的分布式锁的时候,大家都知道是依靠了setnx的指令,在CAS(Compareandswap...
继续阅读 >
为什么需要持久化Redis是基于内存的NoSQL数据库,读写速度自然快,但内存是瞬时的,在redis服务关闭或重启之后,redis存放在内存的数据就会丢失,为了解决这个问题,redis提供了两种持久化方式,以便在发生故障后恢复数据。持久化选项redis提供了两种不同的持久化方式来将数据存储到硬盘中。一种是快照方式(也叫RDB方式),它可以将莫一时刻存在于redis中的所有数据存储到硬盘;另一种叫只追加文件(AOF)方式,它会定时的复制red...
前言完整的源代码已经上传到CodeChina平台上,文末有仓库链接🤭技术栈前端htmlThymleafJquery后端SpringBootShiroRedisMybatis-Plus需求分析有1和2用户,用户名和密码也分别为1和2,1用户有增加和删除的权限,2用户有更新的权限,登录的时候需要验证码并且需要缓存用户的角色和权限,用户登出的时候需要将缓存的认证和授权信息删除。数据库E-R图设计其实就是传统的RBAC模型,不加外键的原因...
老规矩,先抛结论后验证string:有点像java的hashMap,存的时候什么key,取的时候也什么key,常用于做缓存,保存用户信息、查询列表等;hash:这个有点像hashMap的value又套了个hashMap,下文有举例,一看就明白了;list:有序列表,类似Java的linkedList,可以在左边右边插入数据;set:去重集合,类似Java的hashset,可用于求交集,比如共同好友;zset:带权重的set集合,可用于做排行榜;为了方便理解,我们基于这个dog类来做测...
先将安装包拖入/opt目录注意:这里的脚本bind修改后为0.0.0.0bind修改后为bind127.0.0.1+服务器IP在下面#!/bin/bash#yum源echo-e"\033[31m=====正在验证当前为仅主机还是NAT模式=====\033[0m"ping-c1-W1www.baidu.com&>/dev/nullif[$?-eq0];thenecho-e"\033[31m检测当前为NAT模式,为您配置在线yum源\033[0m"mkdir-p/etc/yum.repos.d/repo.bakmv-f/etc/yum.repos.d/*/etc/yum.repos.d/repo.bak&>...
1.redis安装文件夹下配置文件redis.conf修改69行注释127.0.0.1,不然是只允许本地访问2.关闭保护模式redis.conf修改88行为no3.开启后台启动redis.conf修改136行为yes,保存退出4.添加redis.conf修改507行修改密码(这个选择操作,这里设置密码,连接时候需要带上密码)5.防火墙会导致连接不上,关闭防火墙,正式服务不建议关闭处理,需要正规处理6.关闭保护模式进入redis安装目录的src目录下输入:./redis-cli将受保护模式选项设...
问题描述操作redis发现原有Master变成slave,其他slave成master,切换较频繁问题分析查看redis服务器sentinel日志,发现主机频繁在凌晨左右sentinel哨兵检查到master挂了,主备切换,排查为每天凌晨左右对hash:sms:qxt:mobile:content:day队列进行删除触发的切机,队列量级过大,删除时导致redis服务器卡住,切机。问题处理队列改用分批删除,避免对大数据量队列进行删除而引起切机补充:redis一主一从一哨兵,第一次主从切换成功,...
一、数据丢失的情况异步复制同步丢失集群产生脑裂数据丢失1.异步复制丢失对于Redis主节点与从节点之间的数据复制,是异步复制的,当客户端发送写请求给master节点的时候,客户端会返回OK,然后同步到各个slave节点中。如果此时master还没来得及同步给slave节点时发生宕机,那么master内存中的数据会丢失;要是master中开启持久化设置数据可不可以保证不丢失呢?答案是否定的。在master发生宕机后,sentinel集群检测到master发生故...
redisclusterrediscluster是Redis的分布式解决方案,在3.0版本推出后有效地解决了redis分布式方面的需求自动将数据进行分片,每个master上放一部分数据提供内置的高可用支持,部分master不可用时,还是可以继续工作的支撑N个redismasternode,每个masternode都可以挂载多个slavenode高可用,因为每个master都有salve节点,那么如果mater挂掉,rediscluster这套机制,就会自动将某个slave切换成masterredisclustervs.repl...
1redis主从复制的概念多机环境下,一个redis服务接收写命令,当自身数据与状态发生变化,将其复制到一个或多个redis。这种模式称为主从复制。在redis中通过命令salveof命令让执行该命令的redis复制另一个redis数据与状态。我们将主服务器称为master,从服务器称为slave。主从复制保证了网络异常正常时,网络断开重的情况下将数据复制。网络正常时master会通过发送命令保持对slave更新,更新包括客户端的写入,key的过期或被逐出等...
因为项目的原因采用了RedisCluster,3主3从,每台主机1主1从,集群信息如下:10.135.255.72:20011>clusternodes7b662b36489a6240aa21d1cf7b04b84019254b6310.135.255.74:20012slave85c78164a448fb9965e22447429a56cab226c68f0153723958190043connected61c3e1a640e71f4801d850c901dd33f0b4f6876d10.135.255.73:20012slave8e3491125e105333958dd752ee0d0b0a41ed2d900153723958230041connected85c78164a448fb9965e22...