一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

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

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() {
    //-----添加數據----------
    jedis.set("name","xinxin");//向key-->name中放入了value-->xinxin
    System.out.println(jedis.get("name"));//執行結果: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() {
    //-----添加數據----------
    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,執行結果:[minxr]-->注意結果是一個泛型的List
    //第一個參數是存入redis中map對象的key,后面跟的是放入map中的對象的key,后面的key可以跟多個,是可變參數
    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的鍵中存放的值的個數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(){
    //開始前,先移除所有的內容
    jedis.del("java framework");
    System.out.println(jedis.lrange("java framework",0,-1));
    //先向key java framework中存放三條數據
    jedis.lpush("java framework","spring");
    jedis.lpush("java framework","struts");
    jedis.lpush("java framework","hibernate");
    //再取出所有數據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"));//返回集合的元素個數
  }
 
  @Test
  public void test() throws InterruptedException {
    //jedis 排序
    //注意,此處的rpush和lpush是List的操作。是一個雙向鏈表(但從表現來看的)
    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));// [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";
  
  //可用連接實例的最大數目,默認值為8;
  //如果賦值為-1,則表示不限制;如果pool已經分配了maxActive個jedis實例,則此時pool的狀態為exhausted(耗盡)。
  private static int MAX_ACTIVE = 1024;
  
  //控制一個pool最多有多少個狀態為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);
    }
  }
}

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

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 爽爽窝窝午夜精品一区二区 | 北岛玲在线播放 | 色花堂中文字幕98堂网址 | 日韩精品成人免费观看 | 国产精品原创巨作无遮挡 | 把美女屁股眼扒开图片 | 小鸟酱视频在线观看 | 视频一区 日韩 | 无套大战白嫩乌克兰美女 | 天天做天天爱天天爽综合网 | 久草热8精品视频在线观看 久草草在线视视频 | xnxx动漫| 爱豆传媒最新视频国产 | 午夜香蕉成视频人网站高清版 | 精品亚洲视频在线 | 亚洲一区二区三区91 | 我强进了老师身体在线观看 | 我的漂亮朋友在线观看全集免费 | 忘忧草研究院一二三 | 俄罗斯美女破苞 | 香港论理午夜电影网 | 欧美一级免费看 | 蜜月aⅴ免费一区二区三区 蜜桃影像传媒推广 | 香蕉免费一区二区三区在线观看 | 欧美一区二区三区在线观看不卡 | 东北疯狂xxxxbbbb中国 | 欧美日本一区视频免费 | 香蕉久久一区二区三区 | 亚洲成av人片在线观看天堂无码 | a天堂中文在线 | 男人女人日皮视频 | chinese老太grandma | 色香视频在线 | 色天天综合网色鬼综合 | 免费在线视频网站 | 欧美日韩va | 国产福利片在线 | 操动漫美女视频 | 我和么公的秘密小说免费 | 万域之王在线观看 | 青草网址 |