ShardedJedisPool的使用

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Tair(兼容Redis),内存型 2GB
简介:
 1 package com.test;
 2
 3 import java.util.ArrayList;
 4 import java.util.List;
 5
 6 import redis.clients.jedis.JedisPoolConfig;
 7 import redis.clients.jedis.JedisShardInfo;
 8 import redis.clients.jedis.ShardedJedis;
 9 import redis.clients.jedis.ShardedJedisPool;
10
11 public class RedisShardPoolTest {
12
13     static ShardedJedisPool pool;
14
15     static{
16         JedisPoolConfig config =new JedisPoolConfig();//Jedis池配置
17         config.setMaxActive(500);//最大活动的对象个数
18         config.setMaxIdle(1000  60);//对象最大空闲时间
19         config.setMaxWait(1000  10);//获取对象时最大等待时间
20         config.setTestOnBorrow(true);
21         String hostA = “192.168.0.100”;
22         int portA = 6379;
23         String hostB = “192.168.0.115”;
24         int portB = 6379;
25         List jdsInfoList =new ArrayList(2);
26         JedisShardInfo infoA = new JedisShardInfo(hostA, portA);
27         infoA.setPassword(“admin”);
28         JedisShardInfo infoB = new JedisShardInfo(hostB, portB);
29         infoB.setPassword(“admin”);
30         jdsInfoList.add(infoA);
31         jdsInfoList.add(infoB);
32         pool =new ShardedJedisPool(config, jdsInfoList);
33      }
34
35
36
37     /*
38
39       @param args
40
41      */
42
43     public static void main(String[] args) {
44         for(int i=0; i<100; i++){
45             String key = generateKey();
46             ShardedJedis jds = null;
47             try {
48                 jds = pool.getResource();
49                 System.out.println(key+”:”+jds.getShard(key).getClient().getHost());
50                 System.out.println(jds.set(key,Math.random()+””));
51             } catch (Exception e) {
52                 e.printStackTrace();
53             } finally {
54                 pool.returnResource(jds);
55             }
56         }
57     }
58
59     private static int index = 1;
60     public static String generateKey(){
61         return String.valueOf(Thread.currentThread().getId())+”_”+(index++);
62     }
63 }

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore &nbsp; &nbsp; ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库&nbsp;ECS 实例和一台目标数据库&nbsp;RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&amp;RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
Java Spring
Spring Boot 2.X(八):Spring AOP 实现简单的日志切面
AOP 1.什么是 AOP ? AOP 的全称为 Aspect Oriented Programming,译为面向切面编程,是通过预编译方式和运行期动态代理实现核心业务逻辑之外的横切行为的统一维护的一种技术。
3136 1
|
关系型数据库 MySQL Linux
部署MySQL数据库(Linux)
MySQL是一个关系型数据库管理系统,常用于LAMP和LNMP等网站场景中。本教程介绍如何在Linux系统ECS实例上安装、配置以及远程访问MySQL数据库。
2474 9
|
Java 测试技术 Spring
|
SQL 存储 NoSQL
Flink SQL 自定义 redis connector
一般情况下,我们不需要创建新的 connector,因为 Flink SQL 已经内置了丰富的 connector 供我们使用,但是在实际生产环境中我们的存储是多种多样的,所以原生的 connector 并不能满足所有用户的需求,这个时候就需要我们自定义 connector,这篇文章的重点就是介绍一下如何实现自定义 Flink SQL connector ? 先来看一下官网的一张 connector 架构图:
Flink SQL 自定义 redis connector
|
JavaScript Java 应用服务中间件
Vue 跨域问题 的几种解决办法 (No ‘Access-Control-Allow-Origin‘ header is present on the requested resource)
Vue 跨域问题 的几种解决办法 (No ‘Access-Control-Allow-Origin‘ header is present on the requested resource)
1958 0
Vue 跨域问题 的几种解决办法 (No ‘Access-Control-Allow-Origin‘ header is present on the requested resource)
|
Java Spring
Spring @Scheduled(fixedRate = 120000) 和 @Scheduled(cron = "*/5 * * * * ?")的区别?
Spring @Scheduled(fixedRate = 120000) 和 @Scheduled(cron = "*/5 * * * * ?")的区别?
196 0
|
关系型数据库 Java MySQL
|
SQL 自然语言处理 索引
DSL的诞生 | 复杂sql转成Elasticsearch DSL深入详解
源自死磕ElasticsearchQQ群(626036393)中的一个问题: 问题如下: where (position=ES or work=ES or content=ES) and academic=本科 and (city=北京 or city=深圳) 1 怎么构建ES的查询条件? 我的问题拆解与实现如下:
1757 0
DSL的诞生 | 复杂sql转成Elasticsearch DSL深入详解
|
存储 缓存 NoSQL
详解Redisson分布式限流的实现原理
我们目前在工作中遇到一个性能问题,我们有个定时任务需要处理大量的数据,为了提升吞吐量,所以部署了很多台机器,但这个任务在运行前需要从别的服务那拉取大量的数据,随着数据量的增大,如果同时多台机器并发拉取数据,会对下游服务产生非常大的压力。之前已经增加了单机限流,但无法解决问题,因为这个数据任务运行中只有不到10%的时间拉取数据,如果单机限流限制太狠,虽然集群总的请求量控制住了,但任务吞吐量又降下来
448 0
|
Kubernetes 网络协议 网络安全
K8S常见报错处理
作者主页:https://www.couragesteak.com/
K8S常见报错处理