jedis针对三种redis工作模式的连接方式
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了jedis针对三种redis工作模式的连接方式,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4135字,纯文字阅读大概需要6分钟。
内容图文
这里说的三种工作模式是指:
1、单机模式
2、分片模式
3、集群模式(since 3.0)
说明图详见以下:
使用jedis连接模式一:
//初始化连接 private Jedis jedis=new Jedis("192.168.0.100", 6379); jedis.set("a","b"); jedis.hmset(key, hash); ……
使用jedis连接模式二:
GenericObjectPoolConfig config=new GenericObjectPoolConfig(); config.setMaxIdle(32); config.setMinIdle(12); config.setTestOnBorrow(true); config.setTestOnReturn(rtrue); config.setTestWhileIdle(true); List<JedisShardInfo> shards = new ArrayList<JedisShardInfo>(); for (int i = 0; i < shareds.size(); i++) { shards.add(new JedisShardInfo("192.168.0.100", 6379, 200)); } // 构造池 ShardedJedisPool shardedJedisPool= new ShardedJedisPool(config, shards); ShardedJedis jedis=shardedJedisPool.getResource(); jedis.set("a","b"); jedis.hmset(key, hash); ……
使用jedis连接模式三:
Set<HostAndPort> jedisClusterNodes = new HashSet<HostAndPort>(); for (int i = 0; i < shareds.size(); i++) { jedisClusterNodes.add(new HostAndPort("192.168.0.100",6379)); } // 构造池 BinaryJedisCluster cluster= new BinaryJedisCluster(jedisClusterNodes); cluster.set("a","b"); cluster.hmset(key, hash); ……BinaryJedisCluster.java是为了让jedis支持byte数组形式value重写的一个类,参考网上文档,记不得来源了。以下是代码(部分):
public class BinaryJedisCluster extends JedisCluster { public String set(final String key, final byte[] value) { return new JedisClusterCommand<String>(connectionHandler, timeout, maxRedirections) { public String execute(Jedis connection) { return connection.set(SafeEncoder.encode(key), value); } }.run(key); } public byte[] getBytes(final String key) { return new JedisClusterCommand<byte[]>(connectionHandler, timeout, maxRedirections) { public byte[] execute(Jedis connection) { return connection.get(SafeEncoder.encode(key)); } }.run(key); } public Set<byte[]> zrevrangeByScoreBytes(final String key, final double max, final double min, final int offset, final int count) { return new JedisClusterCommand<Set<byte[]>>(connectionHandler, timeout, maxRedirections) { public Set<byte[]> execute(Jedis connection) { return connection.zrevrangeByScore(SafeEncoder.encode(key), max, min, offset, count); } }.run(key); } public Set<byte[]> zrevrangeByScoreBytes(final String key, final String max, final String min, final int offset, final int count) { return new JedisClusterCommand<Set<byte[]>>(connectionHandler, timeout, maxRedirections) { public Set<byte[]> execute(Jedis connection) { return connection.zrevrangeByScore(SafeEncoder.encode(key), SafeEncoder.encode(max), SafeEncoder.encode(min), offset, count); } }.run(key); } public Long linsert(final String key, final LIST_POSITION where, final byte[] pivot, final byte[] value) { return new JedisClusterCommand<Long>(connectionHandler, timeout, maxRedirections) { public Long execute(Jedis connection) { return connection.linsert(SafeEncoder.encode(key), where, pivot, value); } }.run(key); } public Long lpushx(final String key, final byte[]... string) { return new JedisClusterCommand<Long>(connectionHandler, timeout, maxRedirections) { public Long execute(Jedis connection) { return connection.lpushx(SafeEncoder.encode(key), string); } }.run(key); } public Long rpushx(final String key, final byte[]... string) { return new JedisClusterCommand<Long>(connectionHandler, timeout, maxRedirections) { public Long execute(Jedis connection) { return connection.rpushx(SafeEncoder.encode(key), string); } }.run(key); } public List<byte[]> blpopBytes(final String arg) { return new JedisClusterCommand<List<byte[]>>(connectionHandler, timeout, maxRedirections) { public List<byte[]> execute(Jedis connection) { return connection.blpop(SafeEncoder.encode(arg)); } }.run(null); } public List<byte[]> brpopBytes(final String arg) { return new JedisClusterCommand<List<byte[]>>(connectionHandler, timeout, maxRedirections) { public List<byte[]> execute(Jedis connection) { return connection.brpop(SafeEncoder.encode(arg)); } }.run(null); } }
编译后jedis jar包下载地址:http://pan.baidu.com/s/1mgIPYDa
源码地址:http://pan.baidu.com/s/1jGIobBo
原文:http://my.oschina.net/shyloveliyi/blog/502017
内容总结
以上是互联网集市为您收集整理的jedis针对三种redis工作模式的连接方式全部内容,希望文章能够帮你解决jedis针对三种redis工作模式的连接方式所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。