redis集群搭建+lua脚本的使用
详细参考这篇文章(windows)
https://blog.csdn.net/qiuyufeng/article/details/70474001
一、使用JAVA代码操作redis集群

- public static void main(String[] args) throws Exception {
- JedisPoolConfig poolConfig = new JedisPoolConfig();
- // 最大连接数
- poolConfig.setMaxTotal(1);
- // 最大空闲数
- poolConfig.setMaxIdle(1);
- // 最大允许等待时间,如果超过这个时间还未获取到连接,则会报JedisException异常:
- // Could not get a resource from the pool
- poolConfig.setMaxWaitMillis(1000);
- Set<HostAndPort> nodes = new LinkedHashSet<HostAndPort>();
- nodes.add(new HostAndPort("127.0.0.1", 6379));
- nodes.add(new HostAndPort("127.0.0.1", 6380));
- nodes.add(new HostAndPort("127.0.0.1", 6381));
- nodes.add(new HostAndPort("127.0.0.1", 6382));
- nodes.add(new HostAndPort("127.0.0.1", 6383));
- nodes.add(new HostAndPort("127.0.0.1", 6384));
- JedisCluster cluster = new JedisCluster(nodes, poolConfig);
- String name = cluster.get("name");
- System.out.println(name);
- cluster.set("age", "18");
- System.out.println(cluster.get("age"));
- try {
- cluster.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }

二、使用JAVA代码操作lua脚本
1、编写lua脚本
- redis.call(\"SET\",KEYS[1],ARGV[1]);\n"
- + "redis.call(\"SET\",KEYS[2],ARGV[2]);
2、java代码

- public static void main(String[] args) throws Exception {
- JedisPoolConfig poolConfig = new JedisPoolConfig();
- // 最大连接数
- poolConfig.setMaxTotal(1);
- // 最大空闲数
- poolConfig.setMaxIdle(1);
- // 最大允许等待时间,如果超过这个时间还未获取到连接,则会报JedisException异常:
- // Could not get a resource from the pool
- poolConfig.setMaxWaitMillis(1000);
- Set<HostAndPort> nodes = new LinkedHashSet<HostAndPort>();
- nodes.add(new HostAndPort("127.0.0.1", 6379));
- nodes.add(new HostAndPort("127.0.0.1", 6380));
- nodes.add(new HostAndPort("127.0.0.1", 6381));
- nodes.add(new HostAndPort("127.0.0.1", 6382));
- nodes.add(new HostAndPort("127.0.0.1", 6383));
- nodes.add(new HostAndPort("127.0.0.1", 6384));
- JedisCluster cluster = new JedisCluster(nodes, poolConfig);
- String lua = "redis.call(\"SET\",KEYS[1],ARGV[1]);\n"
- + "redis.call(\"SET\",KEYS[2],ARGV[2]);";
- String[] p = {"{a}a1","{a}a2","a","b"};
- Object eval = cluster.eval(lua, 2, p);
- try {
- cluster.close();
- } catch (IOException e) {
- e.printStackTrace();
- }

需要注意的时,redis集群执行lua操作的时候,要求key值必须要在同一个solt上面,为了达到这个目的,可以在key值中增加“{xx}”内容,这样redis在计算hash槽的时候会按{}内的内容计算hash值;
可以参考这篇文章https://blog.csdn.net/jing956899449/article/details/53338282
redis集群搭建+lua脚本的使用的更多相关文章
- redis集群+JedisCluster+lua脚本实现分布式锁(转)
https://blog.csdn.net/qq_20597727/article/details/85235602 在这片文章中,使用Jedis clien进行lua脚本的相关操作,同时也使用一部分 ...
- Redis集群搭建的三种方式
一.Redis主从 1.1 Redis主从原理 和MySQL需要主从复制的原因一样,Redis虽然读取写入的速度都特别快,但是也会产生性能瓶颈,特别是在读压力上,为了分担压力,Redis支持主从复制. ...
- Redis 集群搭建详细指南
先有鸡还是先有蛋? 最近有朋友问了一个问题,说毕业后去大城市还是小城市?去大公司还是小公司?我的回答都是大城市!大公司! 为什么这么说呢,你想一下,无论女孩男孩找朋友都喜欢找个子高胸大的.同样的道理嘛 ...
- 二、redis集群搭建
redis集群搭建 redis3.0后支持集群.集群中应该至少有三个节点,每个节点有一备份节点.需要6台服务器.搭建伪分布式,需要6个redis实例.搭建集群的步骤: 一.安装单机版redis 第一步 ...
- redis集群搭建及注意事项
上一篇:redis的安装及注意事项 这里,在一个Linux虚拟机上搭建6个节点的redis伪集群,思路很简单,一台虚拟机上开启6个redis实例,每个redis实例有自己的端口.这样的话,相当于模拟出 ...
- Linux Redis集群搭建与集群客户端实现(Python)
硬件环境 本文适用的硬件环境如下 Linux版本:CentOS release 6.7 (Final) Redis版本: Redis已经成功安装,安装路径为/home/idata/yangfan/lo ...
- Linux Redis集群搭建与集群客户端实现
硬件环境 本文适用的硬件环境如下 Linux版本:CentOS release 6.7 (Final) Redis版本: Redis已经成功安装,安装路径为/home/idata/yangfan/lo ...
- Redis集群搭建-韩国庆
认真一步一步搭建下来,就可以成功.... Redis-cluster集群架构讲解 redis集群专业名词称之为Redis-cluster,redis集群是从3.0版本以后才有的概念,也就是说在3.0之 ...
- redis 集群搭建: redis-cluster
前言 redis数据存储在内存中, 就会受到内存的限制, 大家都知道, 一台电脑, 硬盘可以有1T, 但是内存, 没有听说有1T的内存吧. 那如果数据非常多, 超过一台电脑的内存空间, 怎么办呢? 正 ...
随机推荐
- SQLSERVER2012里的扩展事件初尝试(上)
SQLSERVER2012里的扩展事件初尝试(上) SQLSERVER2012里的扩展事件初尝试(下) 周未看了这两篇文章: 扩展事件在Denali CTP3里的新UI(一) 扩展事件在Denali ...
- SCCM2012安装、配置
1.sql server2012,排序规则选择:SQL_Latin1_General_CP1_CI_AS1.扩展AD架构2.打开ad用户和计算机,高级--system 容器授予 sccm服务器 完全控 ...
- SQL脚本运行
$v=New-Object -ComObject wscript.shell#也可以使用反单引号(`)字符来强制PowerShell将单引号或双引号解释为文本,0不显示命令提示符窗口$v.run(&q ...
- python2.x和3.x的区别(不定时更新)
python2.x和3.x的区别 文:铁乐与猫 2018.3.16新增博文,为方便以后总结Python2.x与3.x的不同版本之间的区别,随时更新. python原本的宗旨是崇尚优美.清晰.简单.但p ...
- December 03rd 2016 Week 49th Saturday
By failing to prepare, you are preparing to fail. 不做准备,那就准备失败吧. How does the case when you had prepa ...
- [EffectiveC++]item32:确定你的public继承模塑出is-a关系
- 0x01 现阶段目标
现阶段目标: 1.完成前端知识基础的学习. 具体如下: 在目前学习的基础上(html,css,JavaScript+BOM基础已经大致了解).针对DOM进行学习,个人在http://how2j.cn? ...
- upper_bound()与lower_bound()的使用
upper_bound()与lower_bound()的使用 c++中的许多库函数可以使我们的代码量大大减少,也可使问题简单化.很早之前就接触了upper_bound()与lower_bound(), ...
- screen 命令基本操作教程
sreen 命令提供的基本功能与 tmux 较为相似( 关于 tmux 基本操作可参见笔者的博文 终端复用工具 tmux 基本操作教程 ).screen 命令以会话( session )为基础为用户提 ...
- Hibernate三种状态;query查询;ResultTransformer转换为pojo对象;能够将query语句写在xml中;Criteria查询;ProjectionList总和/f分组等函数
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/u010026901/article/details/24256091 Session操作过程中的po ...