啓動Redis
# redis-cli -v //查看版本
# redis-server & //啓動服務 &=後臺運行
# 建議配置文件啓動 redis-server /usr/local/redis/redis.conf
# redis-cli shutdown 中止服務
# redis-server --port 6380 //指定端口 默認爲6379
基本操做
# redis-cli
>keys * //查看全部鍵
>dbsize //鍵總數
>exists 鍵值 //查看鍵是否存在(1存在 0不存在)
>set hello word 設置鍵hello 值爲word
>del hello 刪除
>get hello 獲取
>mset a 1 b 2 c 3 批量設置
>mget a b c 批量獲取
>set hello zkc xx 修改已經存在的hello 爲zkc
>incr 是數值的鍵 每次加1
>append hello zkc 值 追加zkc
>strlen hello 查看字符串長度
>getset hello redis 設置並返回原值
>getrange hello 0 b 字符位置以0開始計數 將hello的鍵值第一個字符改成b
>getrange hello 0 1 獲取hello鍵值的 第1和2位字符
哈希 (hset key field value)
>hset user:1 name tom 設置
>hget user:1 name tom 獲取
>hdel user:1 name 刪除
>hlen user:1 計算field個數
>hmset user:1 name tome age 12 批量設置
>hexists user:1 name 判斷是否存在
>hkeys user:1 獲取全部field
>hvals user:1 獲取全部value
>hgetall user:1 獲取全部field+value
>hmset hashkey f1 v1 f2 v2
>object encoding hashkey
查看內部編碼 field個數小 ziplist
當value大於64字節或者field個數超過512 內部編碼會變成hashtable
列表
添加
> rpush listkey c b a 從右往左插入元素
> lpush list1 c b a 從左往右插入元素
> lrange listkey 0 -1 從左往右獲取列表全部元素
> linsert listkey before b java b前面插入java
> linsert listkey after b java b後面插入java
查
> lrange listkey 0 -1 從左往右獲取列表全部元素 (0爲第一位 -1爲最後一位)
> lrange listkey 0 2 從左往右獲取列表 第1位到第3位元素
> lindex listkey -1 獲取列表下最後一位的元素(指定索引下標的元素)
> llen listkey 獲取列表長度
刪除
> lpop listkey 刪除左側
> rpop listkey 刪除右側
> lrem listkey 4 a 從左往右刪除4個a
> ltrim listkey 1 3 只保留第2位到第4位的元素
修改
> lset listkey 2 pyhton 第三位改爲python
阻塞
> brpop list:test 3 (timeout=3 客戶端3秒後返回)
> brpop list:test 0 (會一直阻塞)
> blpop (用法同樣方向不一樣)
集合
集合內操做
1添加元素
> sadd key a b c
返回3 添加了3個元素
2刪除
> srem key a b ca
3計算元素個數
> scard key
4判斷元素在集合內否 在返回1 不在返回0
>sismember key c
5隨機從集合中返回指定個數元素
> srandmember key 2
6從集合中隨機彈出刪除一個元素
> spop key
> smembers key 查看元素已經沒有剛剛彈出的
7獲取全部元素
> smembers key
集合間操做
求多個集合的交集
sinter key key
求多個集合的並集
synion key key
求多個集合的差集
sdiff key key
將交集,並集,差集的結果保存
sinterstore destination key key
sunionstore destination key key
sdiffstore destination key key
內部編碼
1內部元素個數較少爲整數時,內部編碼爲 intset
> object encoding key 查看內部編碼
2當元素超過512個 內部編碼變爲 hashtable
> object encoding key
給用戶添加標籤 sadd user:1:tags tag1 tag2
刪除 srem user:1:tags tag1 tag2
給標籤添加用戶 sadd tag1:users user:1 user:3
刪除 srem tag1:users user:1
有序集合
添加成員
zadd key 100 tom 添加用戶tom 和他的分數100
計算成員個數
zcard key
計算成員排名 (從0開始計算)
zrank key 低到高
zrevrank key 高到低
刪除成員
zrem key tom
增長成員分數
zincrby key 9 tom
指定排名範圍的成員
zrange key 0 2 withscores 低到高 1-3名 加withscores會返回分數
zrevrange key 0 2 withscores 高到低
指定分數範圍的成員 (200 +inf 無限大
zrangebyscore key 200 220 withscores 200-220分的從低到高
zrevrangebyscore 高到低
指定分數範圍的個數
zcount key 200 220
刪除指定分數的成員
zremrangeebyscore key 200 220
zremrangeebyscore key (250 +inf 刪除250分以上的人
事務
> multi 開始
> ...N條操做
> exec 結束 (能夠用discard代替exec)