redis
文章平均质量分 59
勤径苦舟
书山有路勤为径,学海无涯苦作舟。
展开
-
redis--20.4--锁--红锁(Redisson,RedLock)
当前客户端 对 大多数的redis节点加锁成功,就表示获取锁成功。为了取到锁,客户端做了以下操作。key的真正有效时间。原创 2024-03-30 18:55:26 · 369 阅读 · 0 评论 -
redis--20.3--锁--分布式锁怎么提高并发能力
将Key分为N个Key组成。这样相比一个Key,提高能N倍的并发。原创 2024-03-30 18:54:08 · 217 阅读 · 0 评论 -
redis--20.2--锁--分布式锁(Redisson,RLock)
在上面任务调度的方法中,也是异步执行并且设置了一个监听器,在操作执行成功之后,会回调这个方法,如果调用失败会打一个错误日志并返回,更新锁过期时间失败;然后获取异步执行的结果,如果为true,就会调用本身,如此说来又会延迟10秒钟去执行这段逻辑,所以,这段逻辑在你成功获取到锁之后,会每隔十秒钟去执行一次,并且,在锁key还没有失效的情况下,会把锁的过期时间继续延长到30 秒,也就是说只要这台服务实例没有挂掉,并且没有主动释放锁,看门狗都会每隔十秒给你续约一下,保证锁一直在你手中。类型,这里key是指。原创 2024-03-30 18:35:49 · 1415 阅读 · 0 评论 -
redis--13.3--Redisson--整合SpringBoot
【代码】redis--13.3--Redisson--整合SpringBoot。原创 2024-03-30 18:22:00 · 233 阅读 · 0 评论 -
redis--13.2--jedis--整合SpringBoot
application.properties 配置redis。application.properties 配置redis。application.properties 配置redis。原创 2024-03-30 18:20:53 · 140 阅读 · 0 评论 -
redis--28.1--常见问题--Asynchronous AOF fsync is taking too long(disk is busy)
Redis提供了一个自救的方式,当发现文件有在执行 fdatasync(2) 时,就先不调用 write(2),只存在 cache 里,免得被 Block。如果系统IO 繁忙,比如有别的应用在写盘,或者Redis自己在AOF rewrite或RDB snapshot(虽然此时写入的是另一个临时文件,虽然各自都在连续写,但两个文件间的切换使得磁盘磁头的寻道时间加长),就可能导致 fdatasync(2) 迟迟未能完成从而 Block 住 write(2),Block 住整个 Redis。日志,触发业务超时。原创 2023-07-03 21:30:59 · 3009 阅读 · 0 评论 -
redisinsight--基础--2.2--安装--docker安装
【代码】redisinsight--基础--2.2--安装--docker安装。原创 2022-09-11 10:09:08 · 1273 阅读 · 0 评论 -
redisinsight--基础--2.1--安装--window
如果下载不下来,就去其他网站下载。原创 2022-09-11 10:07:46 · 358 阅读 · 0 评论 -
redisinsight--基础--01--介绍
有了RedisMod的支持,Redis的功能将变得非常强大。Redis经过多年发展,早已不仅仅是一个内存数据库了。原创 2022-09-11 10:06:18 · 394 阅读 · 0 评论 -
redis--生产环境docker搭建--01--单机部署
redis–生产环境docker搭建–01–单机部署前提使用hd用户登陆完成redis--生产环境搭建--01--调整系统参数完成基础环境搭建 https://blog.csdn.net/zhou920786312/article/details/1182123021、下载dockerdocker pull redis:6.2.62、创建配置文件和日志文件cd /home/hdmkdir -p ./data/redis/6379/{conf,data,log}3、创建部署脚本原创 2022-02-18 09:53:36 · 266 阅读 · 0 评论 -
redis--生产环境搭建--05--集群模式的安装和配置
redis–生产环境搭建–05–集群模式的安装和配置代码位置使用hd用户登陆完成基础环境搭建 https://blog.csdn.net/zhou920786312/article/details/118212302一、介绍设置Redis服务访问密码,各集群节点都必须设置相同密码redis以多节点分工的方式工作,数据访问分摊到不同节点,可以提高系统在重载时的处理能力,配合上从节点后可以具有高可用特性,适用于生产环境等要求较高的场合。redis集群的节点个数必须为奇数,至少要有原创 2022-02-18 09:53:25 · 197 阅读 · 0 评论 -
redis--生产环境搭建--04--哨兵模式的安装和配置
redis–生产环境搭建–04–哨兵模式的安装和配置前提使用hd用户登陆完成基础环境搭建 https://blog.csdn.net/zhou920786312/article/details/118212302一、机器如果设置Redis服务访问密码,各主从节点、哨兵节点都必须设置相同密码。redis哨兵模式通过检测主从redis节点的健康状态,发现主节点故障后能发通知、从节点主动接管,实现故障自动切换,从而实现redis的高可用。哨兵节点个数必须为奇数,至少要有1个节点;原创 2022-02-18 09:53:01 · 685 阅读 · 0 评论 -
redis--生产环境搭建--03--主从模式的安装和配置
redis–生产环境搭建–03–主从模式的安装和配置前提使用hd用户登陆完成基础环境搭建 https://blog.csdn.net/zhou920786312/article/details/118212302一、机器机器IP端口requirepassmaster192.168.187.1396388123456slave1192.168.187.1396389123456设置Redis服务访问密码,各主从节点都必须设置相同密码(12345原创 2022-02-18 09:52:39 · 292 阅读 · 0 评论 -
redis--生产环境搭建--02--单机模式的安装和配置
redis–生产环境搭建–02–单机模式的安装和配置前提使用hd用户登陆完成基础环境搭建 https://blog.csdn.net/zhou920786312/article/details/1182123021、编译安装redis # 下载cd wget http://download.redis.io/releases/redis-6.2.6.tar.gz# 解压tar -zxvf redis-6.2.6.tar.gzcd redis-6.2.6# 编译make原创 2022-02-18 09:52:19 · 465 阅读 · 0 评论 -
redis--生产环境搭建--01--调整系统参数
redis–生产环境搭建–01–调整系统参数前提使用hd用户登陆1、禁止使用透明大内存页面,因为可能导致redis延迟和内存使用问题。cdsudo vim /etc/rc.local加入echo never > /sys/kernel/mm/transparent_hugepage/enabled2、修改内存分配策略0: 表示内核将检查是否有足够的可用内存供应用进程使用;如果有足够的可用内存,内存申请允许;否则,内存申请失败,并把错误返回给应用进程。1: 表示内核允许分配所原创 2022-02-18 09:52:06 · 89 阅读 · 0 评论 -
redis--27--命令--INFO
redis–27–命令–INFO1、info命令的使用方法有info:部分Redis系统状态统计信息。info all:全部Redis系统状态统计信息。info section:某一块的系统状态统计信息,其中section可以忽略大小写。2、info Server :服务端消息# Serverredis-server版本redis_version:6.2.6redis_git_sha1:00000000redis_git_dirty:0redis_build_id:504370原创 2022-02-17 15:50:57 · 580 阅读 · 0 评论 -
redis--26--命令--CONFIG
redis–26–命令–CONFIG1、获取配置1.1、格式CONFIG GET 参数名称1.2、案例1–获取日志文件的保存路径CONFIG GET logfile1.3、案例2–获取所有配置项CONFIG GET *2、动态修改配置在不出现启动redis的情况下,动态修改redis.conf的配置不是所有的参数都能修改2.1、格式CONFIG SET 参数名称 参数值2.2、案例1–修改超时时间CONFIG SET timeout 30000原创 2022-02-17 15:50:40 · 1394 阅读 · 1 评论 -
redis--25--命令--运维命令
redis–25–命令–运维命令1、运维常用的server端命令1.1、查看时间戳与微秒数192.168.187.138:6379> time1) "1644147679"2) "375479"192.168.187.138:6379> 1.2、查看当前库中的key数量192.168.187.138:6379> dbsize(integer) 1192.168.187.138:6379> 1.3、后台进程重写aof192.168.187.138原创 2022-02-17 15:50:28 · 475 阅读 · 0 评论 -
redis--24--配置--redis.conf
redis–24–配置–redis.conf # 注意,为了读取配置文件,Redis 第一个参数 必须 是文件路径 ### ./redis-server /path/to/redis.conf ################################## INCLUDES ################################### # 加载其他配置文件 # 最好将include 在该文件的开头,以避免在运行时 覆盖配置### include /pa原创 2022-02-17 15:50:18 · 270 阅读 · 0 评论 -
redis--23--配置--常用配置
redis–23–配置–常用配置 # 单位,不区分大小写# 1k => 1000 bytes# 1kb => 1024 bytes# 1m => 1000000 bytes# 1mb => 1024*1024 bytes# 1g => 1000000000 bytes# 1gb => 1024*1024*1024 bytes# 设置tcp的backlog,backlog其实是一个连接队列,backlog队列总和=未完成三次握手队列 + 已经完成三次原创 2022-02-17 15:50:03 · 84 阅读 · 0 评论 -
redis--22--IO多线程
redis–22–IO多线程1、简介IO多线程其实指客户端交互部分的网络IO交互处理模块多线程,而非执行命令多线程。Redis6执行命令依然是单线程。2、原理架构Redis 6 加入多线程,Redis 的多线程部分只是用来处理网络数据的读写和协议解析,执行命令仍然是单线程。3、多线程IO默认也是不开启的,需要再配置文件中配置io-threads-do-reads yes io-threads 4...原创 2022-02-17 15:49:50 · 122 阅读 · 0 评论 -
redis--21--ACL
redis–21–ACL1、简介Redis ACL是Access Control List(访问控制列表)的缩写。用于权限控制接入权限:用户名和密码可以执行的命令可以操作的 KEY参考官网:https://redis.io/topics/acl2、命令2.1、acl list展现用户权限列表192.168.187.138:6379> acl list1) "user default on nopass ~* &* +@all"192.168.187.138:原创 2022-02-17 15:49:40 · 251 阅读 · 0 评论 -
redis--20.1--锁--分布式锁(自己实现)
目前JVM提供的锁(synchronized)只能作用到当前系统,跨系统是不支持锁操作的,这个时候就要使用分布式锁了。原创 2022-02-17 15:49:29 · 191 阅读 · 0 评论 -
redis--19--集群--简单搭建和理论验证
redis–19–集群–简单搭建和理论验证1、机器机器IP端口机器1192.168.187.1386379机器1192.168.187.1386380机器1192.168.187.1386381机器1192.168.187.1386382机器1192.168.187.1386383机器1192.168.187.13863842、修改配置2.1、公共配置修改最初的redis.conf文件# 设置后台启动daemoni原创 2022-02-17 15:48:04 · 612 阅读 · 0 评论 -
redis--18--集群--理论
redis–18–集群–理论1、集群简介1.1、主从架构优点读写分离,通过增加Slaver可以提高并发读的能力。缺点Master写能力是瓶颈。1.2、哈希Slot对象保存到Redis之前先经过CRC16哈希到一个指定的Node上,例如Object4最终Hash到了Node1上。将整个数据库分为16384个槽位,所有Key的数据都是这些slot的一个,每个Node被平均分配了一个Slot段,对应着0-16384,Slot不能重复也不能缺失,否则会导致对象重复存储或无法存储。Node之原创 2022-02-17 15:48:42 · 235 阅读 · 0 评论 -
redis--17.1--主从复制--哨兵原理
redis–17.1–主从复制–哨兵原理1、作用监控主从数据库是否正常主数据库故障时候将从数据库提升为主数据库配置哨兵监控一个系统时,只要配置其监控主数据库就行,哨兵会自动找到对应的从数据库2、原理2.1、哨兵启动后变化与监控的主数据库建立2条(a,b)连接,连接方式与普通redis客户端一样a连接订阅主数据库的_sentinel_:hello频道,用来获取其他同样监控该数据库的哨兵节点信息。b连接用来发送info命令来获取主数据信息,完成主数据连接2.2、与主数据库连接完成原创 2022-02-16 11:01:59 · 82 阅读 · 0 评论 -
redis--17.0--主从复制
redis–17.0–主从复制1、是什么?主机数据更新后根据配置和策略, 自动同步到备机master/slaver机制Master以写为主Slave以读为主2、能干嘛读写分离,性能扩展容灾快速恢复3、主从复制的2种架构4、复制原理4.1、复制初始化(全量复制)Slave启动成功连接到master后会发送一个sync命令Master接收到sync命令后,执行rdb过程,并将快照期间接收到的写命令缓存起来。快照完毕后,Master将快照文件和所有缓存的命令一起原创 2022-02-16 11:01:25 · 285 阅读 · 0 评论 -
redis--16--持久化--AOF
redis–16–持久化–AOF1、 AOF(Append Only File)是什么将每个写指令以日志的形式记录下来(增量保存),只许追加文件但不可以改写文件读指令不记录redis启动后会读取该日志文件来重新构建数据,简单来说,redis 重启后会根据日志文件的内容将写指令从前到后执行一次以完成数据的恢复工作。2、AOF持久化流程客户端的请求写命令会被append追加到AOF缓冲区内;AOF缓冲区根据AOF持久化策略[always,everysec,no]将操作sync同步到磁盘的A原创 2022-02-16 11:01:14 · 717 阅读 · 0 评论 -
redis--15--持久化--RDB
redis–15–持久化–RDB1、 RDB是什么将数据写入到磁盘里面1.1、持久化时在指定的时间间隔内将内存中的 数据集快照 写入磁盘, 也就是Snapshot快照,1.2、恢复时将快照文件直接读到内存里。2、rdb的工作原理Redis单独创建一个子进程(fork函数)子进程将Redis数据写入一个临时文件中写入数据结束后,再用这个临时文件替换上次的rdb文件。整个过程中,父进程是不进行任何IO操作的2.1、 Forkfork函数复制一个与当前进程(父进程)一样的进程(子原创 2022-02-16 11:00:53 · 311 阅读 · 0 评论 -
redis--14--Redis的事务,锁,秒杀案例
redis–14–Redis的事务,锁,秒杀案例代码位置https://gitee.com/DanShenGuiZu/learnDemo/tree/master/redis-learn/jedis1、Redis的事务1.1、Redis事务是一个单独的隔离操作事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中,不会被其他客户端发送来的命令请求所打断。1.2、主要作用串联多个命令防止别的命令插队。1.3、Redis事务三特性单独的隔离操作事务中的所有命令都会序列化、按原创 2022-02-16 11:00:39 · 289 阅读 · 0 评论 -
redis--13.1--jedis--整合Spring
【代码】redis--13.1--jedis--整合Spring。原创 2022-02-16 11:00:25 · 300 阅读 · 0 评论 -
redis--12--发布和订阅
redis–13–Redis_事务_锁机制_秒杀1、什么是发布和订阅Redis 发布订阅 (pub/sub) 是一种消息通信模式:发送者 (pub) 发送消息订阅者 (sub) 接收消息。Redis 客户端可以订阅任意数量的频道。2、Redis的发布和订阅2.1、客户端可以订阅频道如下图客户端A,B,C 订阅了 channel1 频道2.2、当给这个频道发布消息后,消息就会发送给订阅的客户端当给频道channel1 发送hello,客户端A,B,C都会收到hello3、命令原创 2022-02-16 11:00:11 · 160 阅读 · 0 评论 -
redis--11.2--操作--管道
redis–11.2–操作–管道1、介绍将多个命令一起通过网络发送,返回多个值原创 2022-02-16 10:59:50 · 73 阅读 · 0 评论 -
redis--11.1--操作--对列表类型,集合类型,有序集合类型进行键排序
redis–11.1–操作–对列表类型,集合类型,有序集合类型进行键排序1、命令sort key [alpha] [BY pattern] [LIMIT offset count] [GET pattern [GET pattern ...]] [asc|desc] store desc**alpha:按字典排列非数字元素,如果元素是数字,可不用BY pattern:参考键,最多一个by,可以将集合元素内容按照给定pattern组合成新的key,并按照新key中对应的内容进行排序注意:原创 2022-02-16 10:59:36 · 124 阅读 · 0 评论 -
redis--11.0--操作--Geospatial
redis–11–操作–Geospatial1、简介经纬度类型提供了经纬度设置,查询,范围查询,距离查询,经纬度Hash等常见操作。2、操作2.1、geoadd key longitude latitude member [longitude latitude member…]添加地理位置longitude:经度latitude:纬度member:名称# 添加上海经纬度127.0.0.1:6379> geoadd china:city 121.47 31.23原创 2022-02-16 10:59:13 · 102 阅读 · 0 评论 -
redis--10--操作--HyperLogLog
redis–10–操作–HyperLogLog1、简介1.1、基数问题求集合中不重复元素个数的问题称为基数问题什么是基数?比如数据集 {1, 3, 5, 5, 5}, 那么这个数据集的基数集为 {1, 3, 5 }, 基数(不重复元素)为3。基数估计就是在误差可接受的范围内,快速计算基数。1.2、解决基数问题方案:数据存储在MySQL表中,使用distinct count计算不重复个数使用Redis提供的hash、set、bitmaps等数据结构来处理1.3、HyperLogLo原创 2022-02-14 10:46:25 · 78 阅读 · 0 评论 -
redis--09--操作--Bitmaps
redis–09–操作–Bitmaps1、简介Bitmaps可以实现对位的操作(1位=8字节)Bitmaps本身不是一种数据类型, 实际上它就是字符串(key-value), 但是它可以对字符串value的位进行操作。可以把Bitmaps想象成一个以位为单位的数组, 数组的每个单元只能存储0和1, 数组的下标在Bitmaps中叫做偏移量。2、Bitmaps与set对比假设网站有1亿用户, 每天独立访问的用户有5千万, 如果每天用集合类型和Bitmaps分别存储活跃用户可以得到表set和B原创 2022-02-14 10:45:54 · 362 阅读 · 2 评论 -
redis--08--操作--Zset
redis–08–操作–Zset1、简介Redis有序集合zset与普通集合set非常相似,是一个没有重复元素的字符串集合。不同之处是有序集合的每个成员都关联了一个评分(score),这个评分(score)被用来按照从最低分到最高分的方式排序集合中的成员。集合的成员是唯一的,但是评分可以是重复了 。因为元素是有序的, 所以你也可以很快的根据评分(score)或者次序(position)来获取一个范围的元素。访问有序集合的中间元素也是非常快的,因此你能够使用有序集合作为一个没有重复成员的智能列表原创 2022-02-14 10:44:46 · 945 阅读 · 0 评论 -
redis--07--操作--Hash
redis–07–操作–Hash1、简介是一个键值对(key - value)集合。是一个 string 类型的 key 和 value 的映射表特别适合用于存储对象可以对对象某一项属性值进行存储、读取、修改等操作。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TFvEhNYz-1644806651562)(./image1/14.png)]通过 key(用户ID) + field(属性标签) 操作对应属性数据2、数据结构Hash类型对原创 2022-02-14 10:43:27 · 157 阅读 · 0 评论 -
redis--06--操作--Set
redis–06–操作–Set1、简介Redis的Set是string类型的无序集合。它底层其实是一个value为null的hash表,所以添加,删除,查找的复杂度都是O(1)。集合元素不能重复可以统计访问网站的所有独立ip。2、数据结构Set数据结构是dict字典,字典是用哈希表实现的。Java中HashSet的内部实现使用的是HashMap,只不过所有的value都指向同一个对象。Redis的set结构也是一样,它的内部也使用hash结构,所有的value都指向同一个内部值。3、原创 2022-02-14 10:42:12 · 498 阅读 · 0 评论