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");//密码
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表示倒数第一个
}
}
具体输出结果还请大家去尝试