使用Redis的Java客户端Jedis
来源:互联网 发布:linux 图形安装 kvm 编辑:程序博客网 时间:2024/04/30 20:28
Jedis提供了多种操作方式:单机单连接方式、单机连接池方式、多机分布式+连接池方式。
预备
jedis-2.5.2
commons-pool2-2.2.jar
使用单连接
此方式仅建议用于开发环境做调试用。
// 创建连接
String host = "192.168.56.102";int port = 6379;Jedis client = new Jedis(host, port);
// 执行set指令String result = client.set("key-string", "Hello, Redis!");System.out.println( String.format("set指令执行结果:%s", result) );
// 执行get指令String value = client.get("key-string");System.out.println( String.format("get指令执行结果:%s", value) );
运行上述代码,控制台输出:
set指令执行结果:OK
get指令执行结果:Hello, Redis!
使用连接池
此方式适用于仅使用单个Redis实例的场景。
// 生成连接池配置信息JedisPoolConfig config = new JedisPoolConfig();config.setMaxIdle(10);config.setMaxTotal(30);config.setMaxWaitMillis(3*1000);// 在应用初始化的时候生成连接池JedisPool pool = new JedisPool(config, "192.168.56.102", 6379);// 在业务操作时,从连接池获取连接Jedis client = pool.getResource();try { // 执行指令 String result = client.set("key-string", "Hello, Redis!"); System.out.println( String.format("set指令执行结果:%s", result) ); String value = client.get("key-string"); System.out.println( String.format("get指令执行结果:%s", value) );} catch (Exception e) { // TODO: handle exception} finally { // 业务操作完成,将连接返回给连接池 if (null != client) { pool.returnResource(client); }} // end of try block// 应用关闭时,释放连接池资源pool.destroy();
运行上述代码,控制台输出:
set指令执行结果:OK
get指令执行结果:Hello, Redis!
使用连接池+分布式
在规模较大的系统中,往往会有多个Redis实例做负载均衡。并且还实现主从备份,当主实例发生故障时,切换至从实例提供服务。
类似于Memcached的客户端,Jedis也提供了客户端分布式操作的方式,采用一致性哈希算法。
// 生成多机连接信息列表List<JedisShardInfo> shards = new ArrayList<JedisShardInfo>();shards.add( new JedisShardInfo("127.0.0.1", 6379) );shards.add( new JedisShardInfo("192.168.56.102", 6379) );// 生成连接池配置信息JedisPoolConfig config = new JedisPoolConfig();config.setMaxIdle(10);config.setMaxTotal(30);config.setMaxWaitMillis(3*1000);// 在应用初始化的时候生成连接池ShardedJedisPool pool = new ShardedJedisPool(config, shards);// 在业务操作时,从连接池获取连接ShardedJedis client = pool.getResource();try { // 执行指令 String result = client.set("key-string", "Hello, Redis!"); System.out.println( String.format("set指令执行结果:%s", result) ); String value = client.get("key-string"); System.out.println( String.format("get指令执行结果:%s", value) );} catch (Exception e) { // TODO: handle exception} finally { // 业务操作完成,将连接返回给连接池 if (null != client) { pool.returnResource(client); }} // end of try block// 应用关闭时,释放连接池资源pool.destroy();
运行上述代码,控制台输出:set指令执行结果:OK
get指令执行结果:Hello, Redis!
1 0
- Redis的java客户端Jedis的使用
- redis的Java客户端jedis使用示例
- 使用Redis的Java客户端Jedis
- 使用Redis的Java客户端Jedis
- 使用Redis的Java客户端Jedis
- 使用Redis的Java客户端Jedis
- 使用Redis的Java客户端Jedis
- Redis集群 Java客户端Jedis的使用
- 使用redis的java客户端-----jedis
- redis客户端--Jedis的使用
- Redis 客户端 Jedis的使用
- redis 客户端 jedis的使用
- Redis的java客户端Jedis
- redis的java客户端jedis
- Redis的java客户端Jedis
- Redis的Java客户端Jedis
- Redis的Java客户端Jedis
- 使用Redis的Java客户端Jedis 使用连接池+分布式
- Caffe傻瓜系列(3):激活层(Activiation Layers)及参数
- iOS如何将App程序发布到App Store?
- iOS中的label加载HTML文件
- linux网络编程
- [Android实例] 仿Win8磁铁效果,能够拖动改变Merto位置
- 使用Redis的Java客户端Jedis
- Keymob发力程序化交易 拥抱移动广告未来
- Java编程思想读书笔记(一)
- 畅想“互联网 + ”,畅想未来
- Python文件夹与文件的操作
- 利用系统自带App导航
- java.lang.NoClassDefFoundError
- [Android实例] 两边都能滑动的数据间隔选择SpaceBar
- failed to load sql modules into the database cluster