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