redis 在java中的例項使用場景
阿新 • • 發佈:2019-02-06
redis 是一種Nosql快取技術,它儲存的都是序列化之後的資料。在java中使用redis的話需引入一個輔助jar,本文用的是jedis-2.9.0.jar.
由於專案中用到了log4j,所有還需要引入對於的jar
JedisKit 工具類
package com.iflytek.zhangh;
import org.apache.log4j.Logger;
import redis.clients.jedis.Jedis;
/**
* Java 連線redis的工具輔助類redis
*
* @author hzhang
*
*/
public class JedisKit {
public static Logger logger = Logger.getLogger(JedisKit.class);
private JedisKit() {
}
private static JedisKit jedisKit = new JedisKit();
private static Jedis jedis;
static {
jedis = new Jedis("127.0.0.1", 6379);
jedis.auth("123456");//密碼
jedis.flushDB();//清空當前資料庫
logger.info("jedis status: " + (jedis.ping().equals("PONG") ? "200" : "error"));
}
/**
* jedis 初始化
*
* @return
*/
public static Jedis getJedis() {
return jedis;
}
public static JedisKit getInstance() {
return jedisKit;
}
}
JedisTest 測試類
package com.iflytek.zhangh;
import org.junit.Test;
import redis.clients.jedis.Jedis;
/**
* redis 測試類
* @author Administrator
*
*/
public class JedisTest{
/**
* 測試字串
*/
@Test
public void testJedisString(){
Jedis jedis = JedisKit.getJedis();
jedis.set("demo", "abc");
jedis.exists("demo");
System.out.println("result= "+("abc".equals(jedis.get("demo"))));
}
/**
* 測試雜湊Hash
*/
@Test
public void testjedisHash(){
Jedis jedis = JedisKit.getJedis();
jedis.hset("key1", "field1", "name1");
jedis.hset("key1", "field2", "name2");
jedis.hset("key2", "field3", "name3");
jedis.hset("key3", "field4", "name4");
jedis.hset("key3", "field5", "name5");
System.out.println(jedis.hgetAll("key1"));
System.out.println(jedis.hget("key1", "field1"));
System.out.println(jedis.hgetAll("key2"));
System.out.println(jedis.hgetAll("key3"));
}
/**
* 測試列表List
*/
@Test
public void testJedisList(){
Jedis jedis = JedisKit.getJedis();
jedis.lpush("studentNo", "zhangheng");
jedis.lpush("studentNo", "lisi");
System.out.println("length: "+jedis.llen("studentNo")+jedis.lrange("studentNo", 0, 10));
}
/**
* 測試無序集合set
*/
@Test
public void testJedisSet(){
Jedis jedis = JedisKit.getJedis();
jedis.sadd("Name", "zhangheng1");
jedis.sadd("Name", "zhangheng2");
jedis.sadd("Name", "zhangheng4");
jedis.sadd("Name", "zhangheng3");
jedis.sadd("Name", "zhangheng3");//集合元素有唯一性 不會被插入
jedis.sadd("Name2", "zhangheng3");
jedis.sadd("Name2", "zhangheng4");
System.out.println(jedis.scard("Name"));//獲取集合的成員數
System.out.println(jedis.smembers("Name"));//返回集合中的所有成員
}
/**
* 測試有序集合(sorted set)
*/
@Test
public void testJedisZset(){
Jedis jedis = JedisKit.getJedis();
jedis.zadd("teacher", 0, "teacher1");
jedis.zadd("teacher", 1, "teacher2");
jedis.zadd("teacher", 2, "teacher4");
jedis.zadd("teacher", 3, "teacher3");
jedis.zadd("teacher", 4, "teacher33");
jedis.zadd("teacher", 5, "teacher33");//成員具有唯一性
System.out.println(jedis.zcard("teacher"));//獲取集合的成員數
System.out.println(jedis.zcount("teacher", 1, 3));//返回指定區間的成員數
System.out.println(jedis.zrange("teacher", 0, -1));//0表示第一個元素 -1表示倒數第一個
}
}
具體輸出結果還請大家去嘗試