# String 

##set get 

set mykey "abc" 

get mykey 


set counter 100 


##incr counter 

return 101 


##incrby counter 10 

return 111 


##expire 設置超時時間 

設置超時時間10秒。10秒後會被自動刪除 

EXPIRE mykey 10 


##EXPIREAT 

與EXPIRE 類似,不同的是EXPIREAT用的是 UNIX 时间戳 Unix timestamp 。 


##PERSIST 移除key的生存時間 

PERSIST mykey 


## exists 

判斷key是否存在 


## KEYS 

查找所有符合給定模式pattern條件的key 


##TTL:time to live 

查詢key的剩餘有效時間(單位:秒), 

-2表示已經被刪除,不存在。 

-1表示key存在且沒有設置過期時間 

TTL mykey 


PTTL,與TTL類似,以毫秒為單位 


#type 查看key的類型 

type mykey 


#Redis List 

LPUSH 命令可向list的左边(头部)添加一个新元素, 

而RPUSH命令可向list的右边(尾部)添加一个新元素。 

最后LRANGE 命令可从list中取出一定范围的元素 


注意LRANGE 带有两个索引,一定范围的第一个和最后一个元素。 

这两个索引都可以为负来告知Redis从尾部开始计数, 

因此-1表示最后一个元素,-2表示list中的倒数第二个元素,以此类推。 


##lrange messages -2 -1 


##llen list 

獲取list的長度 


#Redis Set 

Redis集合是未排序的集合 

##SADD 向集合添加一個新元素 

sadd myset 1 


##獲取set所有元素 

smembers myset 


##檢查元素是否存在 

sismember myset 3 


##獲取多個set的交集 

SINTER key1 key2 


sinter tag:1:objects tag:2:objects tag:5:objects tag:77:objects 


##排序 

sort list|set DESC|ALPHA|LIMIT 0 10|LIMIT 0 5 ALPHA DESC  


#Redis有序集合 

##ZRANGE 

返回hackers zset所有元素,按年齡排序 

zrange hackers 0 -1 

返回hackers zset所有元素,按年齡倒序 

zrevrange hackers 0 -1 

一个非常重要的小贴士,ZSets只是有一个“默认的”顺序, 

但你仍然可以用 SORT 命令对有序集合做不同的排序(但这次服务器要耗费CPU了)。 

要想得到多种排序,一种可选方案是同时将每个元素加入多个有序集合。 


返回有序集合元素 


##ZADD 添加zset元素 

zadd hackers 1912 "Alan Turing" 


##區間操作zrangebyscore 

zrangebyscore hackers -inf 1950 


有序集合scores可以在任何时候更新。 

只要用 ZADD 对有序集合内的元素操作就会更新它的score(和位置), 

时间复杂度是O(log(N)),因此即使大量更新,有序集合也是合适的。 



#備份 

將RDB文件(默認dump.rdb)複製備份到服務器之外。建議每天定時備份 


#切換到AOF模式 

为最新的 dump.rdb 文件创建一个备份。 

将备份放到一个安全的地方。 

执行以下两条命令: 

redis-cli config set appendonly yes 

redis-cli config set save "" #关闭 RDB 功能,可不執行,同時使用2種存儲方式 


#client 

##列出所有鏈接的client 

client list 


##kill client 

client kill ip:port 

client kill 192.168.3.227:62525 

推薦: little redis book 中文版 

https://github.com/JasonLai256/the-little-redis-book/blob/master/cn/redis.md 

http://redis.cn/