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

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

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 波多野结衣之高校教师 | 日韩欧美一区二区不卡 | 女教师巨大乳孔中文字幕免费 | 亚洲经典激情春色另类 | 36美女厕所撒尿全过程 | 无套日出白浆在线播放 | 四虎影视黄色 | 国产xxxxxx久色视频在 | 色操网| 2012手机在线中文字幕 | 人成午夜免费大片在线观看 | 皇上好大好硬好涨好深好爽 | 国产重口老太伦 | 涩涩屋在线观看 | 亚洲国产中文字幕在线视频综合 | bt岛www| japonensis日本护士 | 香蕉在线精品一区二区 | 日本人交换乱理伦片 | 国产成人夜色91 | 精品videoss另类日本 | 日韩视频在线精品视频免费观看 | 成人性生交小说免费看 | 五月天婷婷亚洲 | 美女扒开胸罩露出奶 | 亚洲高清在线视频 | 日韩毛片在线 | 亚洲国产天堂在线观看 | 99久久精品免费看国产 | 99热这里只有精品一区二区三区 | 欧美日韩中文国产一区二区三区 | 91看片淫黄大片在看 | 高贵女王调奴vk | 不卡日本| 果冻传媒九一制片厂网站 | 视频亚洲一区 | 国产91一区二区在线播放不卡 | 色综合久久天天综合观看 | 午夜精品国产自在现线拍 | 国产精品一区三区 | 亚洲国产AV无码综合在线 |