TTL (Time To Live) 是指出key有時效的屬性,時間到了就不見了。
Sets
沒有分序列的集合,不同於有序列的陣列,元素也不會有重覆。
SADD 將元素推進集合。
SMEMBERS 列出該集合所有元素。
SISMEMBER 查某元素是否屬該集合。
SINTER 列出兩集合的交集的元素。
SUNION 列出兩集合聯集的元素。
SPOP 隨機移出集合裡的一元素。
SREM 從集合移出一個或多個元素。
redis 127.0.0.1:6379> sadd i5:type:tech twtw(integer) 1redis 127.0.0.1:6379> sadd i5:type:tech chiounan(integer) 1redis 127.0.0.1:6379> smembers i5:type:tech1) "chiounan"2) "twtw"redis 127.0.0.1:6379> sadd i5:type:life chiounan(integer) 1redis 127.0.0.1:6379> sinter i5:type:tech i5:type:life1) "chiounan"redis 127.0.0.1:6379> SISMEMBER i5:type:tech twtw(integer) 1redis 127.0.0.1:6379> SISMEMBER i5:type:life twtw(integer) 0redis 127.0.0.1:6379> SUNION i5:type:life i5:type:tech1) "chiounan"2) "twtw"redis 127.0.0.1:6379> SPOP i5:type:tech"chiounan"redis 127.0.0.1:6379> SREM i5:type:tech twtw(integer) 1
Sorted Sets
同樣是集合,但元素是再加上數值,而可依每元素的數值做排序。
redis 127.0.0.1:6379> ZADD i5:scores 7515 seanamph(integer) 1redis 127.0.0.1:6379> ZADD i5:scores 12033 chiounan(integer) 1redis 127.0.0.1:6379> ZADD i5:scores 9977 markshu(integer) 1redis 127.0.0.1:6379> ZADD i5:scores 9694 thc(integer) 1redis 127.0.0.1:6379> ZADD i5:scores 26040 sunallen(integer) 1#升冪排序redis 127.0.0.1:6379> ZRANGE i5:scores 0 -11) "seanamph"2) "thc"3) "markshu"4) "chiounan"5) "sunallen"#降冪排序redis 127.0.0.1:6379> ZREVRANGE i5:scores 0 -11) "sunallen"2) "chiounan"3) "markshu"4) "thc"5) "seanamph"#加上 WITHSCORES 列出每元素的分數redis 127.0.0.1:6379> ZREVRANGE i5:scores 0 -1 WITHSCORES1) "sunallen"2) "26040"3) "chiounan"4) "12033"5) "markshu"6) "9977"7) "thc"8) "9694"9) "seanamph"10) "7515"#算出分數 5000 ~ 10000 的元素個數redis 127.0.0.1:6379> ZCOUNT i5:scores 5000 10000(integer) 3#列出分數 5000 ~ 10000 的元素redis 127.0.0.1:6379> ZRANGEBYSCORE i5:scores 5000 100001) "seanamph"2) "thc"3) "markshu"#增加某元素的分數redis 127.0.0.1:6379> ZINCRBY i5:scores 1 thc"9695"#列出某元素的分數redis 127.0.0.1:6379> ZSCORE i5:scores thc"9695"
有時效的key
透過 expire 的指令,可設定某key在幾秒後 key 被刪除。
TTL 可看key剩多少秒將被刪除。
PERSIST 可取消掉倒數刪除的作用,而讓該key沒有expire的屬性。
redis 127.0.0.1:6379> set gone:after:3mins "2012-10-21 15:57:06 +0800"OKredis 127.0.0.1:6379> ttl gone:after:3mins(integer) -1redis 127.0.0.1:6379> expire gone:after:3mins 180(integer) 1redis 127.0.0.1:6379> ttl gone:after:3mins(integer) 176redis 127.0.0.1:6379> ttl gone:after:3mins(integer) 173redis 127.0.0.1:6379> PERSIST gone:after:3mins(integer) 1redis 127.0.0.1:6379> ttl gone:after:3mins(integer) -1
也可指定某個時間expire,時間指定需用unix timestamp格式,
例如:2012-10-21 16:18:44 +0800 換算成 1350807518
redis 127.0.0.1:6379> set gone:latter hiOKredis 127.0.0.1:6379> TTL gone:latter(integer) -1redis 127.0.0.1:6379> EXPIREAT gone:latter 1350807518(integer) 1redis 127.0.0.1:6379> TTL gone:latter(integer) 268
也可再設key的同時也設key的有效時間:
redis 127.0.0.1:6379> SETEX gone:60sec 60 "gone after 60 secs"OKredis 127.0.0.1:6379> get gone:60sec"gone after 60 secs"redis 127.0.0.1:6379> ttl gone:60sec(integer) 53
閱讀更多 JAVA小酷 的文章