激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Java中使用Jedis操作Redis的示例代碼

Java中使用Jedis操作Redis的示例代碼

2020-07-20 13:36殘劍_ Java教程

本篇文章主要介紹了Java中使用Jedis操作Redis的示例代碼,具有一定的參考價值,有興趣的可以了解一下。

使用Java操作Redis需要jedis-2.1.0.jar,下載地址:jedis-2.1.0.jar

如果需要使用Redis連接池的話,還需commons-pool-1.5.4.jar,下載地址:commons-pool-1.5.4.jar

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
package com.test;
 
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
 
import org.junit.Before;
import org.junit.Test;
 
import redis.clients.jedis.Jedis;
 
public class TestRedis {
  private Jedis jedis;
  
  @Before
  public void setup() {
    //連接redis服務器,192.168.0.100:6379
    jedis = new Jedis("192.168.0.100", 6379);
    //權限認證
    jedis.auth("admin");
  }
  
  /**
   * redis存儲字符串
   */
  @Test
  public void testString() {
    //-----添加數(shù)據(jù)----------
    jedis.set("name","xinxin");//向key-->name中放入了value-->xinxin
    System.out.println(jedis.get("name"));//執(zhí)行結果:xinxin
    
    jedis.append("name", " is my lover"); //拼接
    System.out.println(jedis.get("name"));
    
    jedis.del("name"); //刪除某個鍵
    System.out.println(jedis.get("name"));
    //設置多個鍵值對
    jedis.mset("name","liuling","age","23","qq","476777XXX");
    jedis.incr("age"); //進行加1操作
    System.out.println(jedis.get("name") + "-" + jedis.get("age") + "-" + jedis.get("qq"));
    
  }
  
  /**
   * redis操作Map
   */
  @Test
  public void testMap() {
    //-----添加數(shù)據(jù)----------
    Map<String, String> map = new HashMap<String, String>();
    map.put("name", "xinxin");
    map.put("age", "22");
    map.put("qq", "123456");
    jedis.hmset("user",map);
    //取出user中的name,執(zhí)行結果:[minxr]-->注意結果是一個泛型的List
    //第一個參數(shù)是存入redis中map對象的key,后面跟的是放入map中的對象的key,后面的key可以跟多個,是可變參數(shù)
    List<String> rsmap = jedis.hmget("user", "name", "age", "qq");
    System.out.println(rsmap);
 
    //刪除map中的某個鍵值
    jedis.hdel("user","age");
    System.out.println(jedis.hmget("user", "age")); //因為刪除了,所以返回的是null
    System.out.println(jedis.hlen("user")); //返回key為user的鍵中存放的值的個數(shù)2
    System.out.println(jedis.exists("user"));//是否存在key為user的記錄 返回true
    System.out.println(jedis.hkeys("user"));//返回map對象中的所有key
    System.out.println(jedis.hvals("user"));//返回map對象中的所有value
 
    Iterator<String> iter=jedis.hkeys("user").iterator();
    while (iter.hasNext()){
      String key = iter.next();
      System.out.println(key+":"+jedis.hmget("user",key));
    }
  }
  
  /**
   * jedis操作List
   */
  @Test
  public void testList(){
    //開始前,先移除所有的內(nèi)容
    jedis.del("java framework");
    System.out.println(jedis.lrange("java framework",0,-1));
    //先向key java framework中存放三條數(shù)據(jù)
    jedis.lpush("java framework","spring");
    jedis.lpush("java framework","struts");
    jedis.lpush("java framework","hibernate");
    //再取出所有數(shù)據(jù)jedis.lrange是按范圍取出,
    // 第一個是key,第二個是起始位置,第三個是結束位置,jedis.llen獲取長度 -1表示取得所有
    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操作Set
   */
  @Test
  public void testSet(){
    //添加
    jedis.sadd("user","liuling");
    jedis.sadd("user","xinxin");
    jedis.sadd("user","ling");
    jedis.sadd("user","zhangxinxin");
    jedis.sadd("user","who");
    //移除noname
    jedis.srem("user","who");
    System.out.println(jedis.smembers("user"));//獲取所有加入的value
    System.out.println(jedis.sismember("user", "who"));//判斷 who 是否是user集合的元素
    System.out.println(jedis.srandmember("user"));
    System.out.println(jedis.scard("user"));//返回集合的元素個數(shù)
  }
 
  @Test
  public void test() throws InterruptedException {
    //jedis 排序
    //注意,此處的rpush和lpush是List的操作。是一個雙向鏈表(但從表現(xiàn)來看的)
    jedis.del("a");//先清除數(shù)據(jù),再加入數(shù)據(jù)進行測試
    jedis.rpush("a", "1");
    jedis.lpush("a","6");
    jedis.lpush("a","3");
    jedis.lpush("a","9");
    System.out.println(jedis.lrange("a",0,-1));// [9, 3, 6, 1]
    System.out.println(jedis.sort("a")); //[1, 3, 6, 9] //輸入排序后結果
    System.out.println(jedis.lrange("a",0,-1));
  }
  
  @Test
  public void testRedisPool() {
    RedisUtil.getJedis().set("newname", "中文測試");
    System.out.println(RedisUtil.getJedis().get("newname"));
  }
}

Redis連接池:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
package com.test;
 
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
 
public final class RedisUtil {
  
  //Redis服務器IP
  private static String ADDR = "192.168.0.100";
  
  //Redis的端口號
  private static int PORT = 6379;
  
  //訪問密碼
  private static String AUTH = "admin";
  
  //可用連接實例的最大數(shù)目,默認值為8;
  //如果賦值為-1,則表示不限制;如果pool已經(jīng)分配了maxActive個jedis實例,則此時pool的狀態(tài)為exhausted(耗盡)。
  private static int MAX_ACTIVE = 1024;
  
  //控制一個pool最多有多少個狀態(tài)為idle(空閑的)的jedis實例,默認值也是8。
  private static int MAX_IDLE = 200;
  
  //等待可用連接的最大時間,單位毫秒,默認值為-1,表示永不超時。如果超過等待時間,則直接拋出JedisConnectionException;
  private static int MAX_WAIT = 10000;
  
  private static int TIMEOUT = 10000;
  
  //在borrow一個jedis實例時,是否提前進行validate操作;如果為true,則得到的jedis實例均是可用的;
  private static boolean TEST_ON_BORROW = true;
  
  private static JedisPool jedisPool = null;
  
  /**
   * 初始化Redis連接池
   */
  static {
    try {
      JedisPoolConfig config = new JedisPoolConfig();
      config.setMaxActive(MAX_ACTIVE);
      config.setMaxIdle(MAX_IDLE);
      config.setMaxWait(MAX_WAIT);
      config.setTestOnBorrow(TEST_ON_BORROW);
      jedisPool = new JedisPool(config, ADDR, PORT, TIMEOUT, AUTH);
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
  
  /**
   * 獲取Jedis實例
   * @return
   */
  public synchronized static Jedis getJedis() {
    try {
      if (jedisPool != null) {
        Jedis resource = jedisPool.getResource();
        return resource;
      } else {
        return null;
      }
    } catch (Exception e) {
      e.printStackTrace();
      return null;
    }
  }
  
  /**
   * 釋放jedis資源
   * @param jedis
   */
  public static void returnResource(final Jedis jedis) {
    if (jedis != null) {
      jedisPool.returnResource(jedis);
    }
  }
}

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:http://www.cnblogs.com/liuling/p/2014-4-19-04.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 91精品国产刺激国语对白 | 免费一级特黄做受大片 | 国产超碰人人爽人人做人人爱 | 国产大片全部免费看 | 国产1区在线观看 | 国产精品91在线 | 主人在调教室性调教女仆游戏 | 国产女做a爱免费视频 | 精品一区二区三区在线观看视频 | www.9191.com| 香蕉视频99 | 久久精品欧美电影 | 91中文在线 | 久久精品一区视频 | xp123精品视频| 国产一区二区三区手机在线 | 91短视频在线观看免费最新 | 亚洲国产精品久久久久久久久久久 | 欧美1区2区 | 九九色网站 | 欧美有码在线观看 | 国产精品一区二区手机在线观看 | 久久综合久久综合久久综合 | 福利免费视频 | www.精品视频| 亚洲精品xxx | 一区二区三区在线观看免费视频 | 黄色网址在线免费 | 午夜视频久久 | 黄色av电影在线 | 国产免费高清在线 | 亚洲欧美一区二区三区在线观看 | 国产呦在线观看视频 | 日日草夜夜草 | 国产成人在线综合 | 亚洲精品在线观看免费 | 狠狠色噜噜狠狠狠米奇9999 | 色阁阁69婷婷 | 色99999| 91成人免费网站 | 国产中出视频 |