Redis[Remote Directory Server]:遠端伺服器字典
tar xzf redis-3.2.6.tar.gz
cd redis-3.2.6/
Make
Make install
Redis-server: Redis伺服器
Redis-cli: 指令行用戶端
Redis-benchmark: Redis的性能測試工具
Redis-check-aof: AOF檔案修複工具
Redis-check-dump: RDB檔案檢測工具
Redis.conf: Redis的配置檔案
将配置檔案中daemonize yes 以守護程序的方式來使用
直接啟動
redis-server
redis-server /etc/redis.conf
停止Redis
Shutdown
結束Redis的程序
KEYS * 得到目前資料庫中存在的鍵名
CONFIG GET name
CONFIG SET name value
Port 6379 預設端口
Bind 127.0.0.1, 預設綁定的主機位址
Timeout 0, 當用戶端閑置多久之後關閉連接配接,0代表沒有啟動
Loglevel notice, 日志的級别
Logfile stdout, 日志的記錄方式,預設為标準輸出
Datebase 16,預設資料庫的數量16個,預設的資料庫編号從0開始
Save <second> <change>, 多少秒有多少次改變将其同步到磁盤中的資料檔案裡
Save 900 1
Save 300 10
Save 60 10000
Rdbcompression yes, 存儲本地資料庫時是否啟用壓縮,預設yes
Dbfilename dump.rdb, 指定本地資料庫檔案名,預設dump.rdb
Dir ./, 指定本地資料庫的存放目錄,預設是目前目錄
一個鍵最多存儲512MB
SET 文法: SET key value [EX seconds] [PX milliseconds] [NX|XX]
如果key存在,同名會産生覆寫
GET:根據key找到對應的值 文法:GET key
如果key不是字元串,會報錯
如果key不存在,傳回nil
GETRANGE: 傳回字元串中一部分 文法: GETRANGE start end
GETSET: 設定指定key的值,并且傳回舊的值 文法: GETSET key value
當key不存在傳回nil,如果key不是字元串,會報錯
MSET, 文法:MSET key vakue [key value…]
MGET,文法:MGET key key
STRLEN: 擷取key的字元串長度 文法: STRLEN key 注意:對于不存在key擷取其長度傳回0
SETRANGE:相當于字元串替換的效果 文法: SETRANGE key offset value 注意:如果設定的key原來的字元串長度要比偏移量小,就會以零位元組(\x00)填充
對不存在的key使用SETRANGE,傳回零位元組(\x00)填充
GETRANGE
SETNX: 文法: SETNX key value 隻有key不存在才能設定成功
SETEX: 設定key并key的過期時間 文法: SETEX secondsvalue 注意:SETEX是原子性操作,相當于執行了SET keyvalue,又對ke設定了過期時間EXPIRE key seconds
MSETNX: 一次設定多個key-value對,隻有所有的key都不存在的時候才能設定成功 文法: MSETNX key value [key value…]
PSETEX: 以毫秒為機關設定key的生存周期 文法: PSETEX key milliseconds value 傳回毫秒數PTTL
INCR: 對key中存儲的數字+1 文法:INCR key 注意:key如果不存在,則會先初始化為0,再進行INCR操作, 如果key存儲的不是數字,會報錯
INCRBY: 将key中存儲的數字加上指定增量 文法:INCRBY key increment
INCRBYFLOAT: 給key中存儲的數字加上指定的浮點數
DECR: 将key中存儲的數字減1 文法: DESC KEY
DECRBY: 将key中存儲的數值減去指定的值 DESCBY key increment
APPEND: 通過APPEND将值追加到字元串的末尾 APPEND key value 如果key不存在,則相當于執行了SET操作
在配置檔案中可以通過配置
Hash-max-ziplist-entries 512 512位元組
Hash-max-ziplist-value 64 字段數目
HSET: 将哈希表key中域field設定成指定的value 文法:HSET key field value
HGET: 傳回哈希表key中指定field的值 如果key中field不存在,傳回nil
HSETNX:将hash表中的field設定成指定的值,隻要field不存在的時候才可以成功;如果field存在,操作無效
HSETNX key field value
HMSET: 通過将多個field-value設定到hash表key中 文法:HMSET key field value field value …
HMSET:一次獲得hash表key中對多個field值 文法:HMSET key field field 注意: 如果hash表key中field不存在,會傳回nil
HGETALL: 傳回hash表key中所有的field和value 文法: HGETALL key
HKEYS:傳回hash中key的所有的field 文法:HKEYS key
HVALS:傳回hash中key中filed所有對應的值 文法:HVALS key
HEXISTS:檢測hash中key的field是否存在 文法: HEXISTS key field
HLEN:傳回hash表key中field的數量 文法:HLEN key
HINCRBY: 給hash中key的field做增量操作 文法: HINCRBY key field increment
HINCRBYFLOAT: 給hash中key的field做增量浮點操作 文法:HINCRBYFLOAT key field increment
HDEL:删除hash中key的指定field,可以删除一個也可以删除多個 文法: HDEL key field field
LPUSH: 向清單左端添加元素
RPUSH:向清單右端添加元素
LPUSHX:向清單頭部添加元素,隻有key存在才添加
PPUSHX:向清單尾部添加元素,隻有key存在才添加
LPOP
RPOP
LRANGE:擷取清單片段 文法:LRANGE key start stop
注意:如果start下表比清單的最大下标end大,傳回的空清單;如果stop比清單長度大,傳回到清單的末尾
LREM:删除清單中指定的值 文法:LREM key count value
count值有以下幾種:
Count>0,從清單的頭開始,向尾部搜尋,移除與value相等的元素,移除count個;
Count<0:,從清單尾部向頭搜尋,移除與value相等的元素,移除count個
Count=0:移除清單中所有與value相等的值
LINDEX: 獲得指定索引元素的值 LINDEX key index
LSET:設定指定索引元素的值 文法:LSET key index value
LTRIM: 隻保留清單的片段 文法:LTRIM keystart stop
LINSERT:向清單插入元素 文法:LINSERT keyBEFORE|AFTER pivot value
RPOPLPUSH:将元素從一個清單轉到另一個清單
BLPOP:是LPOP的阻塞版本 文法: BLPOP key[key…] timeout
SADD:像集合中添加元素 文法:SADD key member [,…]
SMEMBERS:傳回指定集合中的元素 文法:SMEMBERS key
SISMEMBER:檢測value是否是集合中的成員 文法:SISMEMBER key value
SREM:删除集合中的一個或者多個成員 文法:SREM key member [member…]
SPOP:删除并傳回集合中的随機元素 文法: SPOP key
SRANDMEMBER:随機傳回結合中的元素 SRANDMEMBER key count
count為正數,而且小于集合中的元素個數,傳回的是一個包含随機元素的集合數組;
count大于集合中元素的個數,傳回整個集合;
count為負數,傳回一個數組,數組中的成員可能出現重複,數組的長度是count的絕對值
SDIFF:傳回集合間的差集 文法: SDIFF key key …
SINTER:傳回集合間的交集 文法:SINTER key key …
SUNION:傳回集合間的并集 文法: SUNION key key …
SCRAD:傳回集合中元素的個數 SCRAD key
SDIFFSTORE:将差集結果儲存到指定集合中 SDIFFSTORE destination key key …
SINTERSTORE
SUNIONSTORE
SMOVE:将集合中元素移動另外一個集合中 SMOVE source destination member
ZADD:将元素及其分數添加到集合中 文法: ZADD key score member [score member]
ZADD key +inf maxInt -inf minInx
ZSCORE:獲得指定元素的分數 ZSCORE key member
ZRANGE:按照元素分數從小到大的順序傳回指定索引start到stop之間所有元素(包含兩端) ZRANGE key start stop[WITHSCORES]
當兩個元素的分數相同時,Redis在排序時按照字段順序(0<9<A<Z<a<z),如果使用的是UTF-8的編碼方式的中文同樣按照字典順序排列
ZREVRANGE:和ZRANGE相反,按照分數從大到小的順序 ZREVRANGE key start stop [WITHSCORES]
ZRANGEBYSCORE:獲得指定分數範圍内的元素,按照分數從小到大的熟悉怒,傳回的是分數在指定的min到max的元素
ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]
ZRANGEBYSCORE PHPScore 80 90 WITHSCORES 包含80、90
ZRANGEBYSCORE PHPScore (80 (90 WITHSCORES 不包含80、90
ZREVRANGEBYSCORE:獲得指定分數範圍内的元素,按照元素的分數從大到小的順序傳回min和max之間的元素
ZREVRANGEBYSCORE keymax min [WITHSCORES] [LIMIT offset count]
ZINCRBY:操作某個元素的分數,傳回操作之後的分數 ZINCRBY key increment member
ZCARD:獲得集合中元素的數量 ZCARD key
ZCOUNT: 獲得指定分數内的元素數量
ZREM:删除一個或多個元素,傳回删除元素的個數 ZREM key member …
ZREMRANGEBYRANK:按照排名範圍删除元素,按照分數從小到達的順序删除所指定的排名範圍的所有元素
ZREMRANGEBYRANK key start stop
ZREMRANGEBYSCORE:按照分數範圍删除元素 ZREMRNAGEBYSCORE key min max
ZRANK:獲得指定元素的排名,根據分數從小到大的順序 ZRANK key member
ZREVRANK:獲得指定元素的排名,根據分數從大到小的順序 ZRANK key member
ZINTERSTORE:計算有序集合的交集,并将結果儲存起來
ZINTERSTORE destination numkeys key key … [WEIGHTS weight weight…] [AGGEGATE SUM|MIN|MAX]
ZUNIONSTORE:計算有序集合并集,将結果儲存起來
ZINTERSTORE destination numkeys key key … [WEIGHTS weight weight…] [AGGEGATE SUM|MIN|MAX]
KEYS:傳回所有符合給定模式的key 文法: KEYS pattern
*: 比對任意個字元
?:比對一個任意字元
[]:比對[]之間的一個字元
\x:比對特殊字元
EXISTS:檢測指定key是否存在 文法:EXISTS key
TYPE:傳回key所存儲的類型 文法:TYPE key
EXPIRE:設定key的過期時間 文法:EXPIRE key seconds
EXPIREAT:需要指定在指定時間戳過期 文法:EXPIREAT keytimestamp
PEXPIRE:以毫秒的形式指定過期時間 文法:PEXPIRE key milliseconds
PEXPIREAT:指定時間戳,機關為毫秒 文法:PEXPIREAT key timestamp
TTL:以秒為機關傳回key剩餘時間 如果key沒有設定過期時間,傳回-1;如果key不存在傳回-2
PTTL:以毫秒為機關傳回key剩餘時間
PERSIST:将一個帶有過期時間的key轉變成永久的key 文法: PERSIST key
DEL:删除指定的key
RANDOMKEY:随機的從目前資料庫中傳回一個key
RENAME:重命名一個鍵 RENAME key newkey
RENAMENX:如果新名稱不存在才會生效
DUMP:序列化給定的key,傳回序列化之後的值
RESTORE:反序列化
MOVE:将目前資料庫中的key移動到另外的資料庫中
MULTI:開啟事務,事務塊中的多條語句會按照順序放入隊列當中,最後由EXEC指令來執行
MULTI
INCR counter1
INCR counter2
INCR counter3
PING
GET counter1
EXEC:執行事務塊中的指令
WATCH:監視一個或者多個key,如果在執行事務之前這個key如果被其他指令改動,事務就被打斷了。
UNWATCH:取消WATCH指令對所有key的監視
DISCARD:
文法錯誤:Redis接到exec後直接傳回錯誤,正确的指令也不會被執行
運作錯誤:正确的指令會被執行
PING:測試和伺服器之間是否連接配接有效
ECHO:列印一個特定資訊
QUIT:請求伺服器關閉與目前用戶端的連接配接,EXIT,CTRL-C
SHUTDOWN:關閉伺服器和用戶端
AUTH:指定Redis的身份驗證,Redis配檔案中requirepass選項的值
CONFIG SET requirepass password
登入進來之後通過AUTH password進行認證
連接配接的時候-a password
SELECT:選擇資料庫 SELECT 0
EXPIRE/EXPIREAT
PEXPIRE/PEXPIREAT
PERSIST
TTL
PTTL
使用SET GETSET也會清除過期時間
SORT key
SORT key DESC
SORT key ALPHA DESC
SORT key [ALPHA] LIMIT 0 5 DESC
SORT uid BY user_level_*
SORT uid GET user_name_*
SORT key [BY pattern] [LIMIT offset count] [GET pattern] [GET pattern] [ASC|DESC|ALPHA] [STORE destination]
包含兩個角色,一個是釋出者,一個是訂閱者;訂閱者可以訂閱一個或者多個頻道channel;釋出者可以向指定頻道釋出資訊
通過PUBLISH釋出消息
PUBLISH channel message
PUBLISH channel1.1 'abelxu'
通過SUBSCRIBE訂閱頻道
SUBSCRIBE channel …
注意:發不出去的消息是不會被持久化的,隻有用戶端訂閱了之後才會接手後面發送的消息
UNSUBSCRIBE:取消某個頻道訂閱,但在Redis用戶端中做了限制,沒有辦法進行驗證 UNSUBSCRIBE [channel]
PSUBSCRIBE:訂閱指定的規則
UNPSUBSCRIBE:取消訂閱
本文轉自 許大樹 51CTO部落格,原文連結:http://blog.51cto.com/abelxu/1892883,如需轉載請自行聯系原作者