日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

java dataset redis,利用Spring-Data-Redis和Jedis操作Redis缓存

發布時間:2025/3/11 javascript 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java dataset redis,利用Spring-Data-Redis和Jedis操作Redis缓存 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

概述 ? ? ? ? ?Jedis是redis官方推薦的用于訪問Java客戶端,在https://github.com/xetorthio/jedis下載最新的jedis。 訪問redis 1、訪問簡單的key——value, pu

只需簡單幾步,就可以利用Spring-Data-Redis和Jedis操作Redis緩存。步驟如下:

第一步:依賴包

org.springframework.data

spring-data-redis

1.4.2.RELEASE

redis.clients

jedis

2.6.0

第二步:封裝自己的Redis操作類

1、spring配置,下面是一個完整redis配置,密碼只需要設置password屬性。

/**

* 封裝對Redis的常用操作,盡量與Redis原始命令一致。Redis命令參考:http://redisdoc.com/

* @author Xu

*

*/

public class XjjStringRedisOps extends StringRedisTemplate {

//Key(鍵),簡單的key-value操作

/**

* 實現命令:TTL key,以秒為單位,返回給定 key的剩余生存時間(TTL, time to live)。

* @param key

* @return

*/

public long TTL(String key) {

return getExpire(key);

}

/**

* 實現命令:KEYS pattern,查找所有符合給定模式 pattern的 key

*/

public Set KEYS(String pattern){

return super.keys(pattern);

}

/**

* 實現命令:DEL key,刪除一個key

* @param key

*/

public void DEL(String key){

delete(key);

}

//String(字符串)

/**

* 實現命令:SET key value,設置一個key-value(將字符串值 value關聯到 key)

* @param key

* @param value

*/

public void SET(String key, String value) {

opsForValue().set(key, value);

}

/**

* 實現命令:SET key value EX seconds,設置key-value和超時時間(秒)

* @param key

* @param value

* @param timeout (以秒為單位)

*/

public void SET(String key, String value, long timeout) {

opsForValue().set(key, value, timeout, TimeUnit.SECONDS);

}

/**

* 實現命令:GET key,返回 key所關聯的字符串值。

* @param key

* @return value

*/

public String GET(String key) {

return opsForValue().get(key);

}

//Hash(哈希表)

/**

* 實現命令:HSET key field value,將哈希表 key中的域 field的值設為 value

* @param key

* @param field

* @param value

*/

public void HSET(String key, String field, Object value) {

opsForHash().put(key, field, value);

}

/**

* 實現命令:HGET key field,返回哈希表 key中給定域 field的值

* @param key

* @param field

* @return

*/

public String HGET(String key, String field) {

return (String) opsForHash().get(key, field);

}

/**

* 實現命令:HDEL key field [field ...],刪除哈希表 key 中的一個或多個指定域,不存在的域將被忽略。

* @param key

* @param fields

*/

public void HDEL(String key, Object... fields) {

opsForHash().delete(key, fields);

}

/**

* 實現命令:HGETALL key,返回哈希表 key中,所有的域和值。

* @param key

* @return

*/

public Map HGETALL(String key) {

return opsForHash().entries(key);

}

//List(列表)

/**

* 實現命令:LPUSH key value,將一個值 value插入到列表 key的表頭

* @param key

* @param value

* @return 執行 LPUSH命令后,列表的長度。

*/

public long LPUSH(String key, String value) {

return opsForList().leftPush(key, value);

}

/**

* 實現命令:LPOP key,移除并返回列表 key的頭元素。

* @param key

* @return 列表key的頭元素。

*/

public String LPOP(String key) {

return opsForList().leftPop(key);

}

/**

* 實現命令:RPUSH key value,將一個值 value插入到列表 key的表尾(最右邊)。

* @param key

* @param value

* @return 執行 LPUSH命令后,列表的長度。

*/

public long RPUSH(String key, String value) {

return opsForList().rightPush(key, value);

}

/**

* 實現命令:RPOP key,移除并返回列表 key的尾元素。

* @param key

* @return 列表key的頭元素。

*/

public String RPOP(String key) {

return opsForList().rightPop(key);

}

//Set(集合)

/**

* 實現命令:SADD key member,將一個 member元素加入到集合 key當中,已經存在于集合的 member元素將被忽略。

* @param key

* @param member

*/

public void SADD(String key, String member) {

opsForSet().add(key, member);

}

/**

* 實現命令:SMEMBERS key,返回集合 key 中的所有成員。

* @param key

* @return

*/

public Set SMEMEBERS(String key) {

return opsForSet().members(key);

}

//SortedSet(有序集合)

/**

* 實現命令:ZADD key score member,將一個 member元素及其 score值加入到有序集 key當中。

* @param key

* @param score

* @param member

*/

public void ZADD(String key, double score, String member) {

opsForZSet().add(key, member, score);

}

/**

* 實現命令:ZRANGE key start stop,返回有序集 key中,指定區間內的成員。

* @param key

* @param start

* @param stop

* @return

*/

public Set ZRANGE(String key, double start, double stop) {

return opsForZSet().rangeByScore(key, start, stop);

}

}

第三步:Spring配置

第四步:測試

@RunWith(SpringJUnit4ClassRunner.class) //使用Spring Junit4進行測試

@ContextConfiguration ({"classpath:spring/applicationContext.xml"}) //加載配置文件

public abstract class BaseJunit4Test {

}

public class RedisTest extends BaseJunit4Test {

@Autowired

XjjStringRedisOps redisOps;

@Test

public void deleteTestKeys(){

redisOps.DEL("xjj.v1");

redisOps.DEL("xjj.v2");

redisOps.DEL("xjj.h1");

redisOps.DEL("xjj.11");

redisOps.DEL("xjj.z1");

HashSet keySet = (HashSet) redisOps.keys("xjj*");

System.out.println(keySet);

Assert.assertEquals("keys刪除不成功!", new HashSet(), keySet);

}

//String類型測試

@Test

public void setStringValue(){

String key = "xjj.v1";

String value = "Hello World!";

redisOps.SET(key, value);

System.out.println("value of xjj: " + redisOps.GET(key));

Assert.assertEquals(value, redisOps.GET(key));

}

@Test

public void setStringValueWithTimeout(){

String key = "xjj.v2";

String value = "Hello World, xjj1!";

long timeout = 100;

redisOps.SET(key, value, timeout);

System.out.println("ttl of xjj1: " + redisOps.TTL(key));

Assert.assertEquals(timeout, redisOps.TTL(key));

}

//Hash類型測試

@Test

public void setHashValue(){

String key = "xjj.h1";

String field1 = "f1";

String value1 = "123";

redisOps.HSET(key, field1, value1);

System.out.println(redisOps.HGET(key, field1));

String field2 = "f2";

String value2 = String.valueOf(888);

redisOps.HSET(key, field2, value2);

System.out.println(redisOps.HGET(key, field2));

System.out.println(redisOps.HGETALL(key));

}

@Test

public void delHashKeys(){

redisOps.HDEL("xjj.h1", "f1", "f2"); //刪除xjj.h1中的f1和f2

}

//List類型測試

@Test

public void ListOps(){

String key = "xjj.l1";

String value1 = "Java";

redisOps.LPUSH(key, value1);

String value2 = "php";

redisOps.RPUSH(key, value2);

System.out.println(redisOps.RPOP(key));

System.out.println(redisOps.LPOP(key));

}

//Set類型測試

@Test

public void SetOps(){

String key = "xjj.s1";

String member1 = "Java";

String member2 = "Python";

String member3 = "PHP";

redisOps.SADD(key, member1);

redisOps.SADD(key, member2);

redisOps.SADD(key, member3);

System.out.println(redisOps.SMEMEBERS(key));

}

//SortedSet類型測試

@Test

public void ZSetOps(){

String key = "xjj.z1";

String member1 = "Java";

String member2 = "Python";

String member3 = "PHP";

double score1 = 1.2;

double score2 = 100.5;

double score3 = 188;

redisOps.ZADD(key, score1, member1);

redisOps.ZADD(key, score2, member2);

redisOps.ZADD(key, score3, member3);

System.out.println(redisOps.ZRANGE(key, 1, 150));

}

}

參考一下這篇文章:?http://snowolf.iteye.com/blog/1666908 也可以借鑒一下這個的思路,僅供參考: package com.ttpod.cache.impl; import com.ttpod.cache.Cache

總結

以上是生活随笔為你收集整理的java dataset redis,利用Spring-Data-Redis和Jedis操作Redis缓存的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。