• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

redis集群搭建+lua脚本的使用

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

详细参考这篇文章(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


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
(转)Ngx_Lua使用分享发布时间:2022-07-22
下一篇:
使用ZeroBrane Studio进行LUA远程调试发布时间:2022-07-22
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap