exists key 測試指定key是否存在
del key1 key2….keyN 刪除指定key
type key 返回指定key的value類型
keys pattern 返回指定模式的全部key
rename oldkey newkey 更名字
dbsize 返回當前數據路的key數量
expire key seconds 爲key指定過時時間
ttl key 返回key的過時剩餘秒數
select db-index 選擇數據庫
move key db-index 把key從當前數據庫移動到指定數據庫
flushdb 刪除當前數據庫全部key
flushall 刪除全部數據庫中的全部key
複製代碼
set key value 設置key對應值爲string類型的value
setex key seconds value 設置key對應值爲string類型的value,增長到期時間
mset key1 value1…keyN valueN 一次設置多個key的值
mget key1 …keyN 一次獲取多個key的值
incr key 對key的值++操做,並返回新值
decr key 同上,可是作的是–操做
incrby key integer 同incr,加指定值
decrby key integer 同desr,減指定值
incrbyfloat key increment 對key的值增長一個浮點數
append key value 給指定key的字符串追加value
substr key start end 返回截取過的key的字符串值 
getrange key start end 獲取存儲在key上的值的一個子字符串
setrange key offset value 將從start偏移量開始的子串設置指定的值
複製代碼
lpush key string 在key對應list的頭部添加字符串元素
rpop key 在list的尾部刪除元素,並返回刪除元素
rpush key string
lpop key
lpush key string
llen key 返回對應list的長度
lrange key start end 返回指定區間內的元素,從下表0開始
ltrim key start end 截取list, 保留指定區間內元素
lindex key 下標 獲取列表下標對應的指定元素
blpop key[key…] time out 刪除,並得到該列的第一元素, 或阻塞,直到有一個可用
brpop key[key…] time out 刪除, 並得到該列的最後一個元素, 或阻塞,直到有一個可用
rpoplpush source destination 刪除列表中的最後一個元素,將其追加到另外一個列表
brpoplpush source destination timeout 彈出一個列表的值,將他推到另外一個列表,並返回他,直到有一個可用
能夠模擬 隊列(先進後出) 和 棧(先進先出)
複製代碼
hdel key field[field…] 刪除一個或多個hash的field
hexists key field 判斷field是否存在hash中
hget key field 獲取hash中field的值
hgetall key 從hash中讀取所有的域和值
hincrby key field increment 將hash中指定域的值增長給定的值
hincrbyfloat key field increment 將hash中指定域的值增長給定的浮點數
hkeys key 獲取hash 中全部field
hlen key 獲取hash中全部字段的數量
hmget key field[field…] 獲取hash裏面指定字段的值
hmset key field[field…] 設置hash字段值
hset key field value 設置hash裏面一個字段的值
hsetnx key field value 設置hash的一個字段,只有這個字段不存在是有效
hstrlen key field 獲取hash裏面指定field的長度
hvals key 獲取hash的全部值
hscan key cursor 迭代hash裏面的元素
複製代碼
sadd key member 添加一個string元素到key對應的set集合中
srem key member 從key對應set中移除給定元素
smove p1 p2 member 從p1對應set中移除給定元素並添加到p2對應set中
scard key 返回set的元素個數
sismember key member 判斷member是否在set中
sinter key p1 p2…pN 返回全部給定key的交集
sunion key p1 p2…pN 返回全部給定key的並集
sdiff key p1 p2…pN 返回全部給定key 的差集
smembers key 返回key對應set的全部元素,結果是無序的
sinterstore destination key [key….]  獲取兩個集合的交集,並存儲在一個關鍵的結果集
sunionstore destination key [key…]  合併set集合,並將結果存入新的set裏面
sdifferstore destination key[key…] 獲取隊列的差集,並存儲在一個新的結果集
srandmember key [count] 從集合中隨機獲取一個key
spop key[count] 刪除並取得一個集合裏面的元素
smove source destination member 移動集合裏的一個key到另外一個集合
複製代碼
有時候還能夠這樣用,在zset裏設置全部元素的score爲0,就按元素首字母排序(自動補全)redis
* zadd key score member 添加元素到集合,元素在集集合中存在則更新應對的score
* zrem key member 刪除指定元素
* zcount key min max 返回分數範圍內的成員變量
* zincrby key incr member 按照incr幅度增長對應member的score值,返回score值
* zrank key member 返回指定元素在集合中的排名(下標),集合中元素是按score從小到大排序的
* zrevrank key member 集合中元素是按score從大到小排序的
* zrange key start end 從集合中選擇指定區間的元素,返回的是有序集合
* zrevrange key start end 同上,返回結果是按score逆序的
* zcard key 返回集合中元素的個數
* zscore key member 返回給定元素對應的score
* zremrangebyrank key min max 刪除集合中排名在給定區間的元素
* zinterstore distination numkeys 相交多個結果集,致使排序的設置存儲在一個新的結果集
* zunionstore destination numberkeys
添加多個排序集合致使排序的設置存儲在一個新的結果集,能夠實現取得最大值(max),取得最小值(min)
複製代碼
樂觀鎖: watch只會在數據被其餘客戶端搶先修改了的狀況下通知執行這個命令的客戶端,而不會阻止其餘客戶端對數據進行修改數據庫
* discard 丟棄全部multi以後發的命令
* exec 執行全部multi以後發放人命令
* multi 標記一個事務塊開始
* unwatch 取消事務命令
* watch key[key…] 鎖定key,直到執行了multi/exec命令
複製代碼
./redis-cli bgsave 異步快照持久化命令   save操做是在主線程中保存快照的(不推薦)
當執行shutdown命令後,會執行一個save命令,執行完畢以後關閉服務器
當從服務器向主服務器發送一個sync命令來執行一次複製操做,那麼主服務器會執行bgsave命令
配置文件快照配置信息
save 900 1 (900秒內有1次修改備份)
save 300 10 (900秒內有10次修改備份)
save 60 10000 (60 秒內有10000 次修改備份)
複製代碼
開啓AOF持久化(設置以前全部數據被清空)
開啓AOF持久化—>修改配置文件 appendonly yes
AOF備份存儲文件—> appendfilename appendonly.aof
appendfsync always
每次收到寫命令就當即強制寫入磁盤,最慢的,可是保證徹底的持久化,不推薦使用,還有可能影響固態硬盤的壽命
appendfsync everysec
每秒鐘強制寫入磁盤一次,在性能和持久化方面作了很好的折中,推薦
appendfsync no
看心情
AOF備份文件優化處理 ./redis-cli bgrewriteaof
複製代碼
從服務器(可讀)配置文件修改:slaveof (主服務器ip地址和端口號)ip port
# 從服務器默認禁止寫入操做:
slave-read-only yes
# 當3個或3個以上的從數據庫鏈接到主數據庫時,主數據庫才能夠寫入:
min-slaves-to-write 3
# 容許從數據庫失去鏈接的最長時間:
min-slave2-max-lag 10
# 服務器終止複製操做
slaveof on one
# 服務器開始複製一個新的主服務器
slaveof host port
從服務器在進行同步時,會清空本身的全部數據 redis不支持主主複製
主從鏈:隨着讀請求操做的重要性明顯高於寫請求的操做性,
增長從服務器,減輕主服務器的負擔,從服務器能夠有本身的從服務器
複製代碼
遇到系統故障時,redis提供了數據恢復工具:bash
redis-check-aof 和 redis-check-dump服務器