项目中遇到bug, 由于对redis这块不熟,只好从头开始一点点积累。废话不多说,下面是java中通过Jedis来操作Redis.
- 需要下载相关的jar包,jedis jar包和redis jar包都行(代码中应用的类是相同的,至于两个包有什么不同不太清楚,以后碰到再研究)。
- 下面是几个小demo
package jedis.redis;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import redis.clients.jedis.Jedis;
public class JedisHandleRedis {
private Jedis jedis;
//连接redis
public void setup(){
//连接redis, host为10.133.17.79, port为6379
jedis = new Jedis("10.133.17.79", 6379);
//如果redis设置了密码,进行认证
//jedis.auth("admin");
}
//通过jedis操作redis中字符串
public void testString(){
System.out.println("STRING START----------------");
//添加
jedis.set("name", "zhao");
System.out.println(jedis.get("name"));
//拼接
jedis.append("name", " is my last name.");
System.out.println(jedis.get("name"));
//删除
jedis.del("name");
System.out.println(jedis.get("name"));
//设置多个键值对
jedis.mset("username", "test", "password","12345","update","2016-4-6");
System.out.println(jedis.get("username") + ":" + jedis.get("password") + ":" + jedis.get("update"));
System.out.println("STRING END----------------");
}
//通过jedis操作redis中map
public void testMap(){
System.out.println("MAP START----------------");
//添加
Map<String, String> student1 = new HashMap<String, String>();
student1.put("name", "xiaoming");
student1.put("age", "21");
student1.put("grade", "third grade");
jedis.hmset("student1", student1);
//下面这样直接取出student1会报错
//System.out.println(jedis.get("student1"));
//通过hmget取出student1, 取出的结果是一个泛型的List
List<String> oList = jedis.hmget("student1", "name", "age", "grade");
System.out.println(oList);
//删除map中某个key
jedis.hdel("student1", "age");
//hget返回某个key的value,类型String
System.out.println(jedis.hget("student1", "name"));
//hmget返回类型List
System.out.println(jedis.hmget("student1", "name"));
System.out.println(jedis.hget("student1", "age"));
System.out.println(jedis.exists("student1"));
//返回map对象中所有的key
System.out.println(jedis.hkeys("student1"));
//返回map对象中所有的value
System.out.println(jedis.hvals("student1"));
System.out.println("MAP END----------------");
}
//通过jedis操作redis中list
public void testList(){
System.out.println("LIST START----------------");
jedis.del("students");
//添加
jedis.lpush("students", "xiaoming");
jedis.lpush("students", "xiaobai");
jedis.lpush("students", "xiaohong");
//通过lrange取出list中的数据
System.out.println(jedis.lrange("students", 0, -1));
//通过rpush添加数据
jedis.rpush("students", "xiaoming2");
jedis.rpush("students", "xiaobai2");
jedis.rpush("students", "xiaohong2");
System.out.println(jedis.lrange("students", 0, -1));
System.out.println("LIST END----------------");
}
//通过jedis操作redis中set
public void testSet(){
System.out.println("SET START----------------");
//添加
jedis.sadd("class", "No.1");
jedis.sadd("class", "No.2");
jedis.sadd("class", "No.3");
jedis.sadd("class", "No.4");
jedis.sadd("class", "No.5");
//获取所有value
System.out.println(jedis.smembers("class"));
//判断是否是set中的元素
System.out.println(jedis.sismember("class", "No.1"));
//随机获取一个成员
System.out.println(jedis.srandmember("class"));
//返回set中元素个数
System.out.println(jedis.scard("class"));
System.out.println("SET END----------------");
}
public static void main(String[] args){
JedisHandleRedis jedisHandleRedis = new JedisHandleRedis();
jedisHandleRedis.setup();
jedisHandleRedis.testString();
jedisHandleRedis.testMap();
jedisHandleRedis.testList();
jedisHandleRedis.testSet();
//关闭连接
jedisHandleRedis.jedis.close();
}
}