1. 程式人生 > 實用技巧 >Redis命令學習

Redis命令學習

啟動: redis-server redis.conf
客戶端: redis-cli
檢視端口占用: netstat -tunpl|grep 6379
退出客戶端: exit

1.資料型別

(1)String(字串)

set xxx aaa     //設定xxx
get xxx     //獲取xxx
del xxx     //刪除xxx
mset name1 111 name2 222 name3 333 name4 444    //設定多個
mget name1 name2 name3    //檢視多個
exists xxx     //檢視是否存在
type aaa      //檢視value的資料型別
randomkey     //從當前庫中隨機返回一個key
FLUSHdb     //清空資料 
FLUSHALL     //清空所有

(2)Hash(雜湊)

賦值:
HSET KEY  FIELD  VALUE    //為指定的KEY,設定FIELD/VALUE  
HMSET  KEY  FIELD VALUE [FIELD1,VALUE1]…… 同時將多個 field-value (域-值)對設定到雜湊表 key 中。

取值:
HGET KEY FIELD   //獲取儲存在HASH中的值,根據FIELD得到VALUE
HMGET key field[field1]      //獲取key所有給定欄位的值
HGETALL key                 //返回HASH表中所有的欄位和值
HKEYS key   //獲取所有雜湊表中的欄位
HVALS key   //獲取所有雜湊表中的值
HLEN key   //獲取雜湊表中欄位的數量

刪除語法:
HDEL KEY field1[field2]    //刪除一個或多個HASH表字段

(3)List(列表)

LPUSH key value1 [value2]     // 將一個或多個值插入到列表頭部
RPUSH key value1 [value2]    // 在列表中新增一個或多個值
BLPOP key1 [key2 ] timeout    // 移出並獲取列表的第一個元素, 如果列表沒有元素會阻塞列表直到等待超時或發現可彈出元素為止。
BRPOP key1 [key2 ] timeout    // 移出並獲取列表的最後一個元素, 如果列表沒有元素會阻塞列表直到等待超時或發現可彈出元素為止。
LINSERT key BEFORE|AFTER pivot value    // 在列表的元素前或者後插入元素
LINDEX key index    // 通過索引獲取列表中的元素
LLEN key     // 獲取列表長度
LRANGE key start stop    //獲取列表指定範圍內的元素

(4)Set(集合)

SADD key member1 [member2]    // 向集合新增一個或多個成員
SMEMBERS key    // 返回集合中的所有成員
SISMEMBER key member    // 1表示存在,0表示不存在或該key本身就不存在(無論集合中有多少元素都可以極速地返回結果)
SREM key member1 [member2]    // 移除集合中一個或多個成員
SINTER key1 [key2]      //返回給定所有集合的交集
SDIFF key1 [key2]     // 返回給定所有集合的差集(屬於key1不屬於key2的集合)
SUNION key1 [key2]     // 返回所有給定集合的並集
SCARD key    //獲取集合中成員的數量
sdiffstore destination key1 [key2]    // 將key1、key2相差的成員儲存在destination中
sinterstore destination key1 [key2]     //將返回的交集儲存在destination中
sunionstore destination key1 [key2]     //將返回的並集儲存在destination中

(5)Zset(sorted set:有序集合)

ZADD key score1 member1 [score2 member2]    // 向有序集合新增一個或多個成員,或者更新已存在成員的分數
ZRANGE key start stop [WITHSCORES]     // 通過索引區間返回有序集合指定區間內的成員
ZCOUNT key min max    // 計算在有序集合中指定區間分數的成員數
ZREM key member [member ...]    // 移除有序集合中的一個或多個成員
ZCARD key    // 獲取有序集合的成員數
ZINCRBY key increment member    // 有序集合中對指定成員的分數加上增量 increment 
ZSCORE key member    // 返回有序集中,成員的分數值
ZRANK key member    // 返回有序集合中指定成員的索引
ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT]    // 通過分數返回有序集合指定區間內的成員
ZINTERSTORE destination numkeys key [key ...]    //計算給定的一個或多個有序集的交集並將結果集儲存在新的有序集合 key 中
ZUNIONSTORE destination numkeys key [key ...]    //計算給定的一個或多個有序集的並集,並存儲在新的 key 中

(6) 程式碼練習

public class App 
{
    public static void main( String[] args )
    {
    	Jedis jedis = new Jedis("8.8.8.8",6379);
    	//jedis.flushAll();
        //System.out.println( "Hello World!" + jedis.ping());
        /*****1.字串(String)*****/
//    	jedis.set("name1", "aaa");
//        System.out.println(jedis.get("name1"));
//    	jedis.del("name1");
//    	
//    	jedis.mset("name1","aaa","name2","bbb","name3","ccc");
//    	System.out.println(jedis.mget("name1","name2","name3"));
//    	
//    	System.out.println(jedis.exists("name1"));
//    	System.out.println(jedis.exists("name","name0","name1","name2","name3"));
//    	System.out.println(jedis.keys("*"));
//    	System.out.println(jedis.type("name1"));
//    	System.out.println(jedis.randomKey());
//    	System.out.println(jedis.flushDB());
//    	System.out.println(jedis.get("name1"));
//    	System.out.println(jedis.flushAll());
//    	System.out.println(jedis.randomKey());
    	
    	/****2.雜湊(Hash)******/
    	/*
    	HashMap<String,String> hmap = new HashMap<String,String>();
    	hmap.put("name5", "eee");
    	hmap.put("name4", "ddd");
    	hmap.put("id", "666");
    	// 設定值
    	jedis.hset("user", "name6", "fff");
    	jedis.hmset("user", hmap);
    	// 取值
    	System.out.println("hget:\t" + jedis.hget("user", "name4"));
    	System.out.println("hmget:\t" + jedis.hmget("user", "name4","name5","name6"));
    	System.out.println("hgetAll:\t" + jedis.hgetAll("user"));
    	System.out.println("keys:\t" + jedis.keys("*"));
    	System.out.println("hkeys:\t" + jedis.hkeys("user"));
    	System.out.println("hvals:\t" + jedis.hvals("user"));
    	System.out.println("hlen:\t" + jedis.hlen("user"));
    	// 刪除field
    	System.out.println("hdel\t" + jedis.hdel("user","name4"));
    	System.out.println("hdel\t" + jedis.hdel("user","name5","name6"));
    	System.out.println(jedis.hgetAll("user"));
    	// 清空
    	System.out.println(jedis.flushAll());
    	System.out.println(jedis.hgetAll("user"));
    	*/

    	
    	/*******3.列表List(類似於棧???)*********/
    	/*
    	// 放值
    	jedis.lpushx("list", "999");
    	jedis.lpush("list", "hhh","ggg","iii");		//1或多到  開始
    	jedis.rpush("list", "kkk","jjj");			//1或多到  末尾
    	jedis.lpushx("list", "666");				// 插入已存在列表頭部
    	// 取值
    	System.out.println(jedis.lrange("list", 0, 10));	//獲取指定範圍元素
    	System.out.println(jedis.blpop("list","5"));		//移出 第一個元素 等待超時
    	System.out.println(jedis.brpop("list", "5"));		//移出 最後一個元素 等待超時
    	System.out.println(jedis.lindex("list", 3));		//索引獲取元素
    	System.out.println(jedis.llen("list"));				//獲取列表長度
    	System.out.println(jedis.lrange("list", 0, 10));
    	//清空
    	System.out.println(jedis.flushAll());
    	*/
    	
    	
    	/********4.集合(Set)****************/
    	/*
    	// 放值
    	jedis.sadd("set", "lll", "nnn", "mmm" ,"ooo");
    	// 取值
    	System.out.println(jedis.smembers("set"));		// 所有元素
    	System.out.println(jedis.sismember("set", "ooo"));			// key(value)是否存在
    	System.out.println(jedis.sismember("sett", "ooo"));
    	System.out.println(jedis.srem("set","ooo","mmm"));		// 移除
    	System.out.println(jedis.smembers("set"));
    	// 運算
    	jedis.sadd("set", "set");
    	jedis.sadd("sett", "lll", "nnn", "mmm", "ooo", "sett");
    	System.out.println(jedis.sinter("set", "sett"));		// 交集
    	System.out.println(jedis.sdiff("set", "sett"));			// 差集
    	System.out.println(jedis.sunion("set", "sett"));		// 並集
    	
    	System.out.println(jedis.scard("set"));		// 元素數目
    	System.out.println(jedis.scard("sett"));		// 元素數目
    	//清空
    	System.out.println(jedis.flushAll());
    	*/
    	
    	/********5.有序集合sorted set(zset)*************/
    	HashMap<String,Double> scoremap = new HashMap<String, Double>(); 
    	scoremap.put("vvv", 0.22);
    	scoremap.put("ppp", 0.16);
    	scoremap.put("sss", 0.19);
    	scoremap.put("qqq", 0.17);
    	scoremap.put("www", 0.23);
    	scoremap.put("rrr", 0.18);
    	scoremap.put("uuu", 0.21);
    	scoremap.put("ttt", 0.20);
    	// 放值
    	jedis.zadd("zset", scoremap);		// 新增元素或更新分數
    	jedis.zadd("zset", 0.24, "xxx");
    	// 元素查詢修改
    	System.out.println(jedis.zrange("zset", 0, 10));		// 根據索引返回區間
    	System.out.println(jedis.zcount("zset", 0.18, 0.21));		// 根據分數返回元素數
    	System.out.println(jedis.zrem("zset", "sss", "ppp"));		// 移除元素
    	System.out.println(jedis.zcard("zset"));					// 元素數目
    	System.out.println(jedis.zincrby("zset", 1, "www"));		// 分數增量
    	System.out.println(jedis.zscore("zset", "www"));		// 返回分數值
    	System.out.println(jedis.zrank("zset", "www"));		// 返回元素索引
    	System.out.println(jedis.zrangeByScore("zset", 0, 2));		// 根據分數返回元素區間
    	//清空
    	System.out.println(jedis.flushAll());
    	
    	
        jedis.close();
    }
}