回想redis的5種數據結構,hash,list,set ,sortedset,string.下面是jedis對這5種數據結構的簡單練習。
基於maven項目:
1、在pom.xml文件中引入jar包:
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-pool2</artifactId>
<version>2.4.2</version>
</dependency>
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.9.0</version>
</dependency>
2、新建一個類:
// jedis裏hash數據結構存取數據
@Test
public void testHash() {
//創立連接
Jedis jedis = new Jedis("localhost");
//操作
// 給hash集合賦全部的值
jedis.hset("myhash", "username", "lilei");
jedis.hset("myhash", "age", "18");
jedis.hset("myhash", "sex", "girl");
//取單個值
String name = jedis.hget("myhash", "username");
System.out.println(name);
Map<String, String> myhash = jedis.hgetAll("myhash");
Set<String> set = myhash.keySet();
for (String key : set) {
System.out.println(key + ":" + myhash.get(key));
}
//關閉連接
jedis.close();
}
// jedis裏list數據結構存取數據,允許有重複元素
@Test
public void testList() {
//創立連接
Jedis jedis = new Jedis("localhost");
//操作
jedis.del("mylist");
//存儲
jedis.lpush("mylist", "b", "b", "c", "d");
jedis.rpush("mylist", "d", "e", "f");
//範圍獲取
List<String> list = jedis.lrange("mylist", 0, -1);
System.out.println(list);
//彈出,從list裏刪除一個元素,並返回刪除元素
System.out.println(jedis.lpop("mylist") + "," + jedis.rpop("mylist"));
//範圍獲取
list = jedis.lrange("mylist", 0, -1);
System.out.println(list);
//關閉連接
jedis.close();
}
// jedis裏set數據結構存取數據,不允許有重複元素
@Test
public void testSet() {
//創立連接
Jedis jedis = new Jedis("localhost");
//操作
jedis.del("myset");
//存儲
jedis.sadd("myset", "a", "b", "b", "c", "d");
//範圍獲取
Set<String> list = jedis.smembers("myset");
System.out.println(list);
//關閉連接
jedis.close();
}
// jedis裏SortedSet數據結構存取數據,不允許有重複元素,且有序
@Test
public void testSortedSet() {
//創立連接
Jedis jedis = new Jedis("localhost");
//操作
jedis.del("mysortedSet");
jedis.del("mysortedset");
//存儲
jedis.zadd("mysortedSet", 100, "wq");
jedis.zadd("mysortedSet", 99, "wjt");
jedis.zadd("mysortedSet", 88, "zst");
jedis.zadd("mysortedSet", 79, "ll");
//範圍獲取
Set<Tuple> list = jedis.zrangeWithScores("mysortedSet", 0, -1);
System.out.println(list.toArray());
//關閉連接
jedis.close();
}
// jedis裏String數據結構存取數據
@Test
public void testString() {
//創立連接
Jedis jedis = new Jedis("localhost");
//操作
jedis.set("username", "123wq");
String username = jedis.get("username");
System.out.println(username);
//可以使用setex() 方法存儲可以指定過期時間的key value
//將鍵值對activecode hello存入redis,並且20s後自動刪除該鍵值對
jedis.setex("activecode", 30, "hello");
//關閉連接
jedis.close();
}
3、分別運行上面方法,比如運行testString
測試的方法前,先打開redis服務器和客戶端,在redis安裝目錄下,分別雙擊redis-server.exe 和 redis-cli.exe,運行該測試方法後,在客戶端輸入 keys * ,然後獲取代碼中存儲的鍵,得到的值和代碼中給的值一樣。
127.0.0.1:6379> keys *
1) "activecode"
2) "username"
127.0.0.1:6379> get activecode -- 剛開始,能夠獲取該值
"hello"
127.0.0.1:6379> get username
"123wq"
127.0.0.1:6379> get activecode -- 30秒後,再次獲取,該值爲空,代碼中所寫即爲該含義
(nil)