详细参考这篇文章(windows)

https://blog.csdn.net/qiuyufeng/article/details/70474001

一、使用JAVA代码操作redis集群

  1. public static void main(String[] args) throws Exception {
  2. JedisPoolConfig poolConfig = new JedisPoolConfig();
  3. // 最大连接数
  4. poolConfig.setMaxTotal(1);
  5. // 最大空闲数
  6. poolConfig.setMaxIdle(1);
  7. // 最大允许等待时间,如果超过这个时间还未获取到连接,则会报JedisException异常:
  8. // Could not get a resource from the pool
  9. poolConfig.setMaxWaitMillis(1000);
  10. Set<HostAndPort> nodes = new LinkedHashSet<HostAndPort>();
  11. nodes.add(new HostAndPort("127.0.0.1", 6379));
  12. nodes.add(new HostAndPort("127.0.0.1", 6380));
  13. nodes.add(new HostAndPort("127.0.0.1", 6381));
  14. nodes.add(new HostAndPort("127.0.0.1", 6382));
  15. nodes.add(new HostAndPort("127.0.0.1", 6383));
  16. nodes.add(new HostAndPort("127.0.0.1", 6384));
  17. JedisCluster cluster = new JedisCluster(nodes, poolConfig);
  18. String name = cluster.get("name");
  19. System.out.println(name);
  20. cluster.set("age", "18");
  21. System.out.println(cluster.get("age"));
  22. try {
  23. cluster.close();
  24. } catch (IOException e) {
  25. e.printStackTrace();
  26. }
  27. }

二、使用JAVA代码操作lua脚本

  1、编写lua脚本

  

  1. redis.call(\"SET\",KEYS[1],ARGV[1]);\n"
  2. + "redis.call(\"SET\",KEYS[2],ARGV[2]);

  2、java代码

  

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

需要注意的时,redis集群执行lua操作的时候,要求key值必须要在同一个solt上面,为了达到这个目的,可以在key值中增加“{xx}”内容,这样redis在计算hash槽的时候会按{}内的内容计算hash值;

可以参考这篇文章https://blog.csdn.net/jing956899449/article/details/53338282

redis集群搭建+lua脚本的使用的更多相关文章

  1. redis集群+JedisCluster+lua脚本实现分布式锁(转)

    https://blog.csdn.net/qq_20597727/article/details/85235602 在这片文章中,使用Jedis clien进行lua脚本的相关操作,同时也使用一部分 ...

  2. Redis集群搭建的三种方式

    一.Redis主从 1.1 Redis主从原理 和MySQL需要主从复制的原因一样,Redis虽然读取写入的速度都特别快,但是也会产生性能瓶颈,特别是在读压力上,为了分担压力,Redis支持主从复制. ...

  3. Redis 集群搭建详细指南

    先有鸡还是先有蛋? 最近有朋友问了一个问题,说毕业后去大城市还是小城市?去大公司还是小公司?我的回答都是大城市!大公司! 为什么这么说呢,你想一下,无论女孩男孩找朋友都喜欢找个子高胸大的.同样的道理嘛 ...

  4. 二、redis集群搭建

    redis集群搭建 redis3.0后支持集群.集群中应该至少有三个节点,每个节点有一备份节点.需要6台服务器.搭建伪分布式,需要6个redis实例.搭建集群的步骤: 一.安装单机版redis 第一步 ...

  5. redis集群搭建及注意事项

    上一篇:redis的安装及注意事项 这里,在一个Linux虚拟机上搭建6个节点的redis伪集群,思路很简单,一台虚拟机上开启6个redis实例,每个redis实例有自己的端口.这样的话,相当于模拟出 ...

  6. Linux Redis集群搭建与集群客户端实现(Python)

    硬件环境 本文适用的硬件环境如下 Linux版本:CentOS release 6.7 (Final) Redis版本: Redis已经成功安装,安装路径为/home/idata/yangfan/lo ...

  7. Linux Redis集群搭建与集群客户端实现

    硬件环境 本文适用的硬件环境如下 Linux版本:CentOS release 6.7 (Final) Redis版本: Redis已经成功安装,安装路径为/home/idata/yangfan/lo ...

  8. Redis集群搭建-韩国庆

    认真一步一步搭建下来,就可以成功.... Redis-cluster集群架构讲解 redis集群专业名词称之为Redis-cluster,redis集群是从3.0版本以后才有的概念,也就是说在3.0之 ...

  9. redis 集群搭建: redis-cluster

    前言 redis数据存储在内存中, 就会受到内存的限制, 大家都知道, 一台电脑, 硬盘可以有1T, 但是内存, 没有听说有1T的内存吧. 那如果数据非常多, 超过一台电脑的内存空间, 怎么办呢? 正 ...

随机推荐

  1. SQLSERVER2012里的扩展事件初尝试(上)

    SQLSERVER2012里的扩展事件初尝试(上) SQLSERVER2012里的扩展事件初尝试(下) 周未看了这两篇文章: 扩展事件在Denali CTP3里的新UI(一) 扩展事件在Denali ...

  2. SCCM2012安装、配置

    1.sql server2012,排序规则选择:SQL_Latin1_General_CP1_CI_AS1.扩展AD架构2.打开ad用户和计算机,高级--system 容器授予 sccm服务器 完全控 ...

  3. SQL脚本运行

    $v=New-Object -ComObject wscript.shell#也可以使用反单引号(`)字符来强制PowerShell将单引号或双引号解释为文本,0不显示命令提示符窗口$v.run(&q ...

  4. python2.x和3.x的区别(不定时更新)

    python2.x和3.x的区别 文:铁乐与猫 2018.3.16新增博文,为方便以后总结Python2.x与3.x的不同版本之间的区别,随时更新. python原本的宗旨是崇尚优美.清晰.简单.但p ...

  5. December 03rd 2016 Week 49th Saturday

    By failing to prepare, you are preparing to fail. 不做准备,那就准备失败吧. How does the case when you had prepa ...

  6. [EffectiveC++]item32:确定你的public继承模塑出is-a关系

  7. 0x01 现阶段目标

    现阶段目标: 1.完成前端知识基础的学习. 具体如下: 在目前学习的基础上(html,css,JavaScript+BOM基础已经大致了解).针对DOM进行学习,个人在http://how2j.cn? ...

  8. upper_bound()与lower_bound()的使用

    upper_bound()与lower_bound()的使用 c++中的许多库函数可以使我们的代码量大大减少,也可使问题简单化.很早之前就接触了upper_bound()与lower_bound(), ...

  9. screen 命令基本操作教程

    sreen 命令提供的基本功能与 tmux 较为相似( 关于 tmux 基本操作可参见笔者的博文 终端复用工具 tmux 基本操作教程 ).screen 命令以会话( session )为基础为用户提 ...

  10. Hibernate三种状态;query查询;ResultTransformer转换为pojo对象;能够将query语句写在xml中;Criteria查询;ProjectionList总和/f分组等函数

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/u010026901/article/details/24256091 Session操作过程中的po ...