jedis是针对Java提供的用来链接Redis服务器的客户端技术,就至关于链接数据库须要jdbc同样。(链接mysql须要使用jdbc、链接Redis须要使用Jedis)mysql
一)下载Jedis的Jar包:官网 www.redis.io 基于maven下最简单的配置方式,来获取redis依赖jar包。redis
官网提供方式以下:算法
1)配置maven的pom.xml中配置:根据配置找到依赖的jar包sql
<dependencies>数据库 <dependency>缓存 <groupId>redis.clients</groupId>服务器 <artifactId>jedis</artifactId>并发 <version>2.6.2</version>maven <type>jar</type>ide <scope>compile</scope> </dependency> </dependencies> |
2)使用Java代码操做Redis服务器
Jedis jedis = new Jedis("192.168.13.129", 6379); jedis.set("string_key01","today is a good day"); String s = jedis.get("string_key01"); System.out.print(s); jedis.close(); |
二)jedis链接池应用
1)建立Jedis链接池配置对象:JedisPoolConfigconfig = new JedisPoolConfig();
2)设置配置相关参数:
config.setMaxIdle(1000*60); config.setMaxTotal(8); config.setTestOnBorrow(ture); |
3)经过配置对象建立链接池对象:
JedisPool pool = new JedisPool(config,"192.168.13.129",6379); |
4)经过池对象获取jedis对象,并操做redis
Jedis jds = pool.getResource(); jds.set("name","zhangsan"); String name = jds.get("name"); System.out.print(name); |
1)导入依赖的jar包
2)使用Java代码操做Redis服务器(同上)
Jedis jedis = new Jedis("192.168.13.129", 6379); jedis.set("string_key01","today is a good day"); String s = jedis.get("string_key01"); System.out.print(s); jedis.close(); |
当一台redis服务器没法承载高并发的压力,咱们就须要多台服务器来分担相应的压力。
图1.
图2.
第一步:配置多台Redis服务器:由于配置多台Redis服务器不方便,因此这里使用复制配置文件,修改端口来模板第二台Redis服务器;
已经有一台了,复制redis.conf修改端口号6380做为第二台服务器
第二步:建立分片Jedis链接池对象:ShardedJedisPool
1)它须要三个参数:1. 配置参数、2. 多台Redis服务器信息参数、3. 算法参数。
JedisPoolConfig poolConfig = newJedisPoolConfig(); poolConfig.setMaxTotal(500); poolConfig.setMaxIdle(1000 * 60); poolConfig.setTestOnBorrow(true);
List<JedisShardInfo> shards = new ArrayList<JedisShardInfo>(2); JedisShardInfo A = new JedisShardInfo("192.168.13.111", 6379); JedisShardInfo B = new JedisShardInfo("192.168.13.111", 6380); shards.add(A ); shards.add(B);
ShardedJedisPoolpool = new ShardedJedisPool(poolConfig, shards , Hashing.MURMUR_HASH); |
2)获取jedis对象,模拟100个请求来测试如何分配资源。
privatestaticintindex = 1; publicstaticvoid main(String[] args) { for(int i=0; i<100; i++){ String key =String.valueOf(index++); ShardedJedis jds =null; try { jds =pool.getResource(); System.out.println(key+":"+jds.getShard(key).getClient().getPort()); System.out.println(jds.set(key,"1111111111111111111111111111111")); }catch (Exception e) { e.printStackTrace(); } finally{ pool.returnResource(jds); } } } |
3)小结:无需关心数据保存到哪台服务器上,获取数据也无需指定服务器,全全由Hashing.MURMUR_HASH来负责。
l 检查redis服务端ip地址和端口号是否正确;
l 检查redis服务端是否设置客户端访问密码:jedis.auth("123456");
l 检查inux防火墙是否关闭
l Linux关闭防火墙命令步骤:
永久性生效,重启后不会复原
¨ 开启:chkconfig iptables on
¨ 关闭:chkconfig iptables off
即时生效,重启后复原
¨ 开启:service iptables start
¨ 关闭:service iptables stop