
redis
java持续实践
Java开发
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Redis高并发高可用
https://xie.infoq.cn/article/51b6930655799b44fa9d2fc5f转载 2022-05-16 07:09:31 · 239 阅读 · 0 评论 -
Redis实现分布式锁原理 详解
笔记来源: Java工程师面试突击专栏https://apppukyptrl1086.pc.xiaoe-tech.com/detail/p_5d3114935b4d7_CEcL8yMS/6文章目录Redis分布式锁 上锁Redis分布式锁 释放锁单机Redis与主从架构实现分布式锁的缺点Redis分布式锁 上锁Redis 实现分布式锁, 官方叫做RedLock .Redis 实现分布式锁命令:SET my:lock 随机值 NX PX 30000my:lock 为keyvalue 为随机值原创 2021-05-29 21:55:54 · 241 阅读 · 2 评论 -
RedLock算法实现分布式锁思路
笔记来源: Java工程师面试突击专栏https://apppukyptrl1086.pc.xiaoe-tech.com/detail/p_5d3114935b4d7_CEcL8yMS/6文章目录RedLock算法实现分布式锁思路RedLock算法实现分布式锁思路场景: 有一个redis cluster 集群, 五个Redis的集群, 每一个master 都有一个slave获取当前的时间戳, 单位毫秒, 用于计算创建锁的时间某个系统尝试在每个master node上都去上锁 , 设置的过期原创 2021-05-29 22:13:36 · 268 阅读 · 0 评论 -
Redis 集群的核心算法--一致性hash算法
讲解分布式数据存储的核心算法,数据分布的算法hash算法 -> 一致性hash算法(memcached) -> redis cluster,hash slot算法用不同的算法,就决定了在多个master节点的时候,数据如何分布到这些节点上去,解决这个问题1、redis cluster介绍redis cluster(1)自动将数据进行分片,每个master上放一部分数据(2)提供内置的高可用支持,部分master不可用时,还是可以继续工作的在redis cluster架构下,每个re原创 2020-09-20 18:53:09 · 1352 阅读 · 2 评论 -
Redis 集群的两种方式以及适用场景
Redis 集群的两种方式redis clusterreplication + sentinal适用场景如果你的数据量很少,主要是承载高并发高性能的场景,比如你的缓存一般就几个G,单机足够了replication,一个mater,多个slave,要几个slave跟你的要求的读吞吐量有关系,然后自己搭建一个sentinal集群,去保证redis主从架构的高可用性,就可以了redis cluster,主要是针对海量数据+高并发+高可用的场景,海量数据,如果你的数据量很大,那么建议就用re原创 2020-09-20 17:12:52 · 1830 阅读 · 1 评论 -
关于Redis与zk的分布式锁
一般实现分布式锁都有哪些方式 ?使用Redis如何实现分布式锁https://javaweixin6.blog.youkuaiyun.com/article/details/108693123使用zk如何实现分布式锁 ?zk 实现分布式锁大致思路:某个节点创建临时的znode, 此时如果创建成功了就获得了这个锁, 别的客户端来创建锁就会失败, 该客户端就会注册一个监听器来监听这把锁.当持有这个锁的客户端释放锁的时候, 即删除znode , 会通知监听的客户端, 监听器等待的客户端就会去给它加上锁.这原创 2020-09-20 16:59:44 · 251 阅读 · 0 评论 -
Redis实现分布式锁原理
Redis 实现分布式锁实际上是通过setnx 命令, 如果有该key值, 则设置失败, 没有该key, 设置成功.但是由于setnx 命令没有过期时间的, 需要额外对key设置过期时间, 但是这个是两步操作, 不能保证其原子性.如下的图中, 就是保证了原子性, 并且能够达到与setnx一致的效果.set key value 传入ex是秒, px 是毫秒 NX 是键不存在时 ,才能设置, 否则返回nil,XX 是键存在时, 才能进行操作, 否则返回nil例如如下 使用 set key val原创 2020-09-20 14:53:59 · 318 阅读 · 0 评论 -
Redis五种数据结构演示
文章目录StringhashlistsetsortedsetStringsetex key 过期时间(单位秒) 值例如上图setex c 100 c设置key为c的值为c , 过期时间为100spsetex key 过期时间(单位毫秒) 值psetex d 10000 d10000毫秒为10s获取字符串的范围getrangegetset 重要!!!设置值的时候, 能获取旧的值.例如下面设置key为a的值为aa . 获得了旧的值为amset mget 一次性设置原创 2020-09-20 11:48:06 · 315 阅读 · 0 评论 -
Redis从海量key里查询出某一固定前缀的key
引入问题:常规的查找key,使用的是KEYS pattern 查找所有符合给定模式pattern的key但使用keys命令在海量数据下是有问题的keys指令一次性返回所有匹配的key键的数量过大会造成服务的卡顿, 需要等很久才会返回结果.从海量key里查询出某一固定前缀的key 主要用到了SCAN 命令 ,该命令的格式如下:SCAN cursor [MATCH pattern] [...原创 2019-10-02 16:06:03 · 6192 阅读 · 0 评论 -
Redis的常用数据类型
文章目录一. String类型二. Hash 类型三. List类型四. Set五. Sorted Set一. String类型String类型为最基本的数据类型, 二进制安全. 可以存储任何的数据 ,包含jpg图片, 序列化的对象等等.对String类型的指令演示命令如下图所示:设置值就采用set 键 值 的形式获取值就采用get 键 的形式, 通过键获取值. 如果键相同, 则会自动覆...原创 2019-10-02 15:37:03 · 213 阅读 · 0 评论 -
使用SpringDataRedis设置key的过期时间
springdataredis的版本:spring-data-redis-1.8.0.RELEASE设置过期时间调用的方法如下.第一个参数为key第二个参数为值第三个参数为过期时间 千万注意 要以L结尾.代表为Long类型. 否则过期时间不会生效redisTemplate.opsForValue().set("mykeys", myvalue, 1L, TimeUnit.DAYS);...原创 2018-12-30 19:02:45 · 8083 阅读 · 6 评论 -
org.springframework.data.redis.serializer.SerializationException 解决方案
在使用Spring Data Redis的过程中,报了如下的异常org.springframework.data.redis.serializer.SerializationException: Cannot serialize; nested exception is org.springframework.core.serializer.support.SerializationFaile...原创 2018-12-30 18:51:18 · 4889 阅读 · 0 评论 -
Windows版本Redis 在redis.properties中密码的设置
Windows版本Redis的Redis默认是没有密码的.在代码中连接Redis使用的是redis.properties配置文件.如果注释掉redis.password这一行,那么项目启动的时候就会报错.解决方案是留下这一行,但是不赋值即可.示例如下redis.host=192.168.56.32redis.port=6379redis.password=redis.maxId...原创 2018-12-30 16:38:33 · 1214 阅读 · 0 评论