随笔分类 -  Redis

redis-分布式锁-消除竞争条件
摘要:因为信号量的设计过程中,获取一个信号量需要执行多个命令组成的流水,这样容易形成竞争条件。 为了消除信号量实现中所有可能出现的竞争条件,构建一个正确的计数信号量,需要在 信号量时,添加带有短暂超时时间的锁。如果程序获取了锁,那么就可以执行正常信号量获取的命令流水;如果程序没有能够获取这个带有短暂超时的 阅读全文

posted @ 2018-07-29 22:17 手握太阳 阅读(359) 评论(0) 推荐(0)

redis-分布式锁-刷新信号量
摘要:为什么需要刷新信号量呢,因为信号量有过期时间; 为什么信号量需要过期时间呢,因为需要利用超时特性,解决分布式锁存在的一些固有缺陷。 而对于类似流式API来说,一般10秒的过期时间是远远不够的。因此我们需要对信号量进行刷新,以防止其过期。 因为公平信号量区分开了“超时有序集合”和“信号量拥有者有序集合 阅读全文

posted @ 2018-07-29 21:46 手握太阳 阅读(439) 评论(0) 推荐(0)

redis-公平信号量
摘要:但各个系统的系统时间并不完全相同时,基本信号量就会出现问题:系统时间较慢的系统,将能够偷走系统时钟快的系统的信号量,导致信号量变得不公平。以下方法,只要系统间时间相差不到1秒,就不会出现信号量被偷或提早过期。 1、为信号量添加一个计数器器和一个有序集合。 2、其中计数器通过持续地执行自增操作,创建出 阅读全文

posted @ 2018-07-25 23:09 手握太阳 阅读(1430) 评论(0) 推荐(0)

redis-计数信号量
摘要:1、基本概念 2、信号量类 3、测试类 4、测试日志 基本概念 计数信号量是一种锁,它可以让用户限制一项资源最多能够同时被多少个进程访问, 技术信号量和其他锁的区别:当客户端获取锁失败时,客户端会选择等待;而获取信号量失败时,通常直接退出,并向用户提示“资源繁忙”,由用户决定下一步如何处理。 信号量 阅读全文

posted @ 2018-07-24 22:38 手握太阳 阅读(2434) 评论(0) 推荐(0)

redis-分片(转)
摘要:转:https://www.cnblogs.com/houziwty/p/5167075.html 分片(partitioning)就是将你的数据拆分到多个 Redis 实例的过程,这样每个实例将只包含所有键的子集。本文第一部分将向你介绍分片的概念,第二部分将向你展示 Redis 分片的可选方案。 阅读全文

posted @ 2018-07-23 21:49 手握太阳 阅读(155) 评论(0) 推荐(0)

redis-自动补全
摘要:自动补全实现方式有两种: 第一种:数据量非常小时,程序从redis中获取数据后,在程序中排序;redis只作为数据存储用; 第二种:数据量较大时,直接在redis中排序,并返回自动补全的数据。 第三种:不需要添加元素,来获取自动补全范围。(使用redis进行搜索) 第二种实现方式解读: 1、在大多数 阅读全文

posted @ 2018-07-23 21:46 手握太阳 阅读(425) 评论(0) 推荐(0)

redis常用操作-键的生存时间
摘要:System.out.println("设置 key001的过期时间为5秒:"+jedis.expire("key001", 5)); System.out.println("移除key001的生存时间:"+jedis.persist("key001"));System.out.println("查 阅读全文

posted @ 2018-07-22 18:06 手握太阳 阅读(183) 评论(0) 推荐(0)

redis分布式锁-自动超时锁(在用)
摘要:1、加锁代码结构 2、解锁代码结构 3、java实例 4、测试类 5、测试日志 加锁代码结构 解锁代码结构 java实例 测试类 测试日志 阅读全文

posted @ 2018-07-22 12:58 手握太阳 阅读(6502) 评论(0) 推荐(0)

redis分布式锁-WATCH锁(废弃)
摘要:使用watch构建锁的代码结构。(最着负载不断增加,系统完成一次加锁操作,重试次数不断加大) 阅读全文

posted @ 2018-07-22 12:16 手握太阳 阅读(1368) 评论(0) 推荐(0)

redis分布式锁-基本概念与实现方式对比
摘要:1、redis中使用WATCH实现锁机制,是最次之的方式。WATCH只会在数据被其他客户端抢先修改了的情况下,“通知”执行了这个命令的客户端,而不会阻止其他客户端对数据进行修改。此类锁成为“乐观锁” 2、redis提供SETNX命令确实具有基本的加锁功能,但他的功能并不完整,并且也不具备分布式锁常见 阅读全文

posted @ 2018-07-22 12:05 手握太阳 阅读(203) 评论(0) 推荐(0)

Redis连接池-Java代码
摘要:1、JedisUtil类 2、测试类 3、测试日志(模拟出现竞争情况) 阅读全文

posted @ 2018-07-22 10:52 手握太阳 阅读(284) 评论(0) 推荐(0)

配置Redis(远程访问及授权设置)
摘要:配置Redis(远程访问及授权设置) 1、将redis.conf里面的bind 127.0.0.1这一行注释掉,添加自己服务器的IP 2、 还有,找到protected-mode这行, 将改为yes. 1、将redis.conf里面的bind 127.0.0.1这一行注释掉,添加自己服务器的IP 2 阅读全文

posted @ 2018-07-22 10:01 手握太阳 阅读(1697) 评论(0) 推荐(0)

redis 的源码编译安装
摘要:redis 的源码编译安装 首先我们下载软件包到指定的目录下 tar -zxvf redis-2.8.19.tar.gz cd redis-2.8.19 make make PREFIX=/usr/local/redis install mkdir /usr/local/redis/etc/ cp 阅读全文

posted @ 2018-07-22 09:04 手握太阳 阅读(2688) 评论(0) 推荐(0)

导航