使用Java來對遠程內存級數據庫進行操作,需要jedis-2.1.0.jar,下載地址:http://files.cnblogs.com/liuling/jedis-2.1.0.jar.zip
package chart1;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import redis.clients.jedis.Jedis;
public class demo {
private Jedis jedis=null;
public void setup(){
//連接Redis服務器,IP+端口號,Redis的端口號一般是6379
//jedis=new Jedis("192.168.31.237",6379);
jedis=new Jedis("127.0.0.1",6379);
System.out.println("服務器連接成功");
//權限認證,本機Redis內存數據庫未設置密碼
// jedis.auth("admin");
}
/*
* redis存儲字符串
*/
public void testString(){
jedis.set("name", "wangjiabin");//添加數據
System.out.println(jedis.get("name"));
jedis.del("name");//刪除數據
System.out.println(jedis.get("name"));
jedis.append("name", " is the best");//字符串拼接
System.out.println(jedis.get("name"));
jedis.mset("name","zhuzhu","age","22","wechat","333545");//設置多個鍵值對
jedis.incr("age"); //進行加1操作
System.out.println(jedis.get("name")+" "+jedis.get("age"));
}
/*
* redis 操作List列表
*/
public void testList(){
jedis.del("java framework");
// System.out.println(jedis.lrange("java framework", 0, -1));
jedis.lpush("java framework", "springs");//將給定的值推入列表的左側
jedis.lpush("java framework","struts2");
jedis.lpush("java framework", "hibernate");
//使用0爲範圍的起始索引,-1位範圍的結束索引,可以去除列表中包含的所有元素。
System.out.println(jedis.lrange("java framework",0, -1));
// System.out.println(jedis.llen("java framework"));//列表中元素的長度
jedis.rpush("java framework", "struts3");//將給定的值推入列表的右側
jedis.rpush("java framework", "hibernate1");
// System.out.println(jedis.lrange("java framework", 0,-1));
// System.out.println(jedis.lindex("java framework",4));//按索引從列表中取出單個元素,列表中的索引是從0開始的
jedis.lpop("java framework");//從列表的左端彈出一個值
jedis.rpop("java framework");//從列表的右端彈出一個值
System.out.println(jedis.lrange("java framework", 0,-1));
}
/*
* redis 操作set無序集合
* 通過散列保證自己存儲的每個字符串都不相同
*/
public void testSet(){
jedis.sadd("user", "liuxiang");//將元素添加到集合中,這個集合是無序的,無法保存相同元素
jedis.sadd("user", "lixin");
jedis.sadd("user", "zhuzhuzhuwen");
jedis.sadd("user", "zhu1");
jedis.sadd("user", "zhu2");
jedis.sadd("user", "zhu3");
jedis.sadd("user", "zhu3");
jedis.srem("user", "zhu2");//移除一個元素
System.out.println(jedis.smembers("user"));//返回集合包含的所有元素
System.out.println(jedis.sismember("user", "zhu2"));//檢查給定元素是否包含在集合中,返回值是bool類型
}
public void testHash(){
//HSET key field value將哈希表key中的域field的值設爲value。
jedis.hset("website", "google", "www.google.cn");
jedis.hset("website", "baidu", "www.baidu.com");
jedis.hset("website", "sina", "www.sina.com");
System.out.println(jedis.hget("website", "google"));//獲取指定散列鍵的值
System.out.println(jedis.hgetAll("website"));//獲取散列包含的所有鍵值對
//HMSET key field value [field value ...] 同時將多個field - value(域-值)對設置到哈希表key中。
Map map = new HashMap();
map.put("cardid", "123456");
map.put("username", "jzkangta");
jedis.hmset("hash", map); //存儲Map集合
System.out.println( jedis.hmget("hash", "cardid","username"));
//HGET key field返回哈希表key中給定域field的值。
System.out.println(jedis.hget("hash", "username"));
//HMGET key field [field ...]返回哈希表key中,一個或多個給定域的值。
List list = jedis.hmget("website","google","baidu","sina");
for(int i=0;i<list.size();i++){
System.out.println(list.get(i));
}
System.out.println(jedis.hlen("website"));
System.out.println(jedis.hkeys("website"));
System.out.println(jedis.hvals("website"));
//HGETALL key返回哈希表key中,所有的域和值。
Map<String,String> map1 = jedis.hgetAll("hash"); //通過key獲取map 集合中的值
for(Map.Entry entry: map1.entrySet()) {
System.out.print(entry.getKey() + ":" + entry.getValue() + "\t");
}
jedis.hdel("website", "google");//刪除哈希表key中的一個或多個指定域
List list1 = jedis.hmget("website","google","baidu","sina");
for(int i=0;i<list1.size();i++){
System.out.println(list1.get(i));
}
//HDEL key field [field ...]刪除哈希表key中的一個或多個指定域。
//HLEN key 返回哈希表key中域的數量。
//HEXISTS key field查看哈希表key中,給定域field是否存在。
//HINCRBY key field increment爲哈希表key中的域field的值加上增量increment。
//HKEYS key返回哈希表key中的所有域。
//HVALS key返回哈希表key中的所有值。
}
public static void main(String[] args) {
demo d=new demo();
d.setup();
// d.testString();
//d.testList();
// d.testSet();
d.testHash();
}
}