JAVA 鏈接 Redis 並進行操做

1, 這裏以maven項目爲例java

     <!-- Redis NoSQL 操做依賴 --> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.9.0</version> </dependency>

2, 會下載兩個依賴包 redis

3, Redis 鏈接池幫助類spring

package redis; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; import redis.clients.jedis.JedisPoolConfig; public class RedisUtil { // Redis 服務器 IP private String address = "192.168.3.118"; // Redis的端口號 private int port = 6379; // 訪問密碼 private String password = "920619"; // 鏈接 redis 等待時間 private int timeOut = 10000; // 可用鏈接實例的最大數目,默認值爲8; // 若是賦值爲-1,則表示不限制;若是pool已經分配了maxActive個jedis實例,則此時pool的狀態爲exhausted(耗盡) private int maxTotal = 1024; // 控制一個pool最多有多少個狀態爲idle(空閒的)的jedis實例,默認值也是8 private int maxIdle = 200; // 等待可用鏈接的最大時間,單位毫秒,默認值爲-1,表示永不超時。若是超過等待時間,則直接拋出JedisConnectionException private int maxWait = 10000; // 在borrow一個jedis實例時,是否提早進行validate操做;若是爲true,則獲得的jedis實例均是可用的 private boolean testOnBorrow = true; // 鏈接池 private JedisPool jedisPool = null; // 構造函數 public RedisUtil() { try { JedisPoolConfig config = new JedisPoolConfig(); config.setMaxTotal(maxTotal); config.setMaxIdle(maxIdle); config.setMaxWaitMillis(maxWait); config.setTestOnBorrow(testOnBorrow); jedisPool = new JedisPool(config, address, port, timeOut, password); } catch(Exception e) { e.printStackTrace(); } } // 獲取 Jedis 實例 public Jedis getJedis() { if (jedisPool != null) { return jedisPool.getResource(); } return null; } }

 4, 測試類服務器

package test; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import org.junit.Test; import redis.RedisUtil; import redis.clients.jedis.Jedis; public class RedisTest { private RedisUtil redisUtil = new RedisUtil(); // 字符串操做  @Test public void testStr() { Jedis jedis = redisUtil.getJedis(); jedis.set("id", "15"); // 只能是字符串 String id = jedis.get("id"); System.out.println(id); jedis.close(); } // 操做 map  @Test public void testMap() { Jedis jedis = redisUtil.getJedis(); Map<String, String> map = new HashMap<String, String>(); map.put("name", "xinxin"); map.put("age", "22"); map.put("qq", "123456"); jedis.hmset("user", map); List<String> rsmap = jedis.hmget("user", "name", "age", "qq"); System.out.println(rsmap); jedis.hdel("user", "age"); Iterator<String> iter = jedis.hkeys("user").iterator(); while (iter.hasNext()) { String key = iter.next(); System.out.println(key + ":" + jedis.hmget("user", key)); } jedis.close(); }   
// 操做 list @Test
public void testList() { Jedis jedis = redisUtil.getJedis(); jedis.del("java framework"); System.out.println(jedis.lrange("java framework", 0, -1)); jedis.lpush("java framework", "spring"); jedis.lpush("java framework", "struts"); jedis.lpush("java framework", "hibernate"); System.out.println(jedis.lrange("java framework", 0, -1)); jedis.del("java framework"); jedis.rpush("java framework", "spring"); jedis.rpush("java framework", "struts"); jedis.rpush("java framework", "hibernate"); System.out.println(jedis.lrange("java framework", 0, -1)); jedis.close(); } // 操做 set @Test public void testSet() { Jedis jedis = redisUtil.getJedis(); jedis.sadd("user1", "liuling"); jedis.sadd("user1", "xinxin"); jedis.sadd("user1", "ling"); jedis.sadd("user1", "zhangxinxin"); jedis.sadd("user1", "who"); jedis.srem("user1", "who"); // 移除noname System.out.println(jedis.smembers("user1"));// 獲取全部加入的value System.out.println(jedis.sismember("user1", "who"));// 判斷 who System.out.println(jedis.srandmember("user1")); // 是不是user集合的元素 System.out.println(jedis.scard("user1"));// 返回集合的元素個數 jedis.close(); } // jedis 排序 @Test public void testOrder() { Jedis jedis = redisUtil.getJedis(); jedis.del("a"); jedis.rpush("a", "1"); jedis.lpush("a", "6"); jedis.lpush("a", "3"); jedis.lpush("a", "9"); System.out.println(jedis.lrange("a", 0, -1)); System.out.println(jedis.sort("a")); System.out.println(jedis.lrange("a", 0, -1)); jedis.close(); } }
相關文章
相關標籤/搜索