Redis API的使用與理解
一、Redis 基礎:
1、通用命令:
keys [pattern]:
keys * #遍歷所有key;keys he* #以‘he‘開頭的key;
keys he[a-e]* #以‘he’開頭第三個字母是a-e之間;
keys ph? #‘?‘代碼一位,以ph開頭且字母是三位的key
dbsize:計算key的總數
exists key :檢查key是否存在(存在返回1,不存在返回0)
del key [key...]:刪除key(返回執行成功的條數)
expire key seconds:設置key在seconds秒後過期
ttl key:查看key剩余的過期時間
persist key:去掉key的過期時間
type key :返回key的類型
2、數據結構:
二、Redis API的使用:
1、String:
set key value 設置鍵值對
setnx key value key不存在才設置
set key value xx key存在才設置
get key 通過key獲取value
mget 批量獲取,時間復雜度 o(n)
mset 批量設置,時間復雜度o(n)
getset key value 設置新值並返回舊值
append key value 在原有value上追加值
strlen key 字符長度
keys * 獲取所有的key (支持通配符 :* ? [])
del key [kel...] 刪除鍵值對
incr key 對於整數value增加1
incrby key num 對於整數value增加num
decr key 對於整數value減少1
decrby key num 對於整數value減少num
incrbyfloat key num 對於浮點數value增加num
getrange key start end 指定顯示的位置
setrange key offset value 指定位置修改
2、Hash:
hset key field value 將哈希表key中的域field 的值設為value
hget key field 返回哈希表key中給定域field的值
hdel key field 刪除哈希表key中的fileld的值
hgetall key 返回哈希表key中,所有的域和值
hkeys key 返回哈希表key中所有的域
hmset key field value [field value] 批量設置field-value對到哈希表key中 o(n)
hmget key field [field] 批量獲取key中 field域的值 o(n)
hexists key field 判斷哈希表key中是否有field
hlen key 獲取哈希表key中field的數量
hvals key 返回哈希表key對應所有field的value
hsetnx key field value 設置哈希表key對應field(存在,則失敗)的value
hincrby key field intCounter 哈希表key對應的field的value增加 intCounter,返回結果
hincrbyfloat key feild floatCounter 哈希表key對應的field的value增加 floatCounter,返回結果
3、List:
1、lpush key value [value...] 從列表左端插入值(1-N個)
2、rpush key value [value...] 從列表右端插入值(1-N個)
3、linsert key before|after value newValue 在列表指定的值前|後插入newValue
4、lrem key count value 根據count值,從列表中刪除所有value,count大於0從左到右,小於0從右到左,等於0刪除所有相等項;例如:lrem key -1 a 從右到左刪除 1 個相等的項
5、ltrim key start end 按照索引範圍修剪列表
6、lrange key start end 獲取列表指定索引範圍所有item等的項
7、llen key 返回列表key的長度
8、lpop key 將列表key最左端的元素彈出
9、rpop key 將列表key最右端的元素彈出
10、lindex key index 獲取列表key指定的索引item
11、lset key index newValue 設置列表key指定索引值為newValue
12、blpop key timeout 阻塞左彈出,timeout是阻塞超時時間,timeout=0為永遠不阻塞
13、brpop 阻塞右彈出,timeout是阻塞超時時間,timeout=0為永遠不阻塞
註:根據不同的業務需求有以下建議:
1、lpush + lpop = stack (以棧的方式存取,後進先出)
2、lpush + rpop = queue (以隊列的方式存取,先進先出)
3、lpush + ltrim = capped conllection (以固定長度的列表存取)
4、lpush + brpop = message queue (消息隊列)
4、Set:
1、sadd key element 向集合key添加element(如果存在添加失敗)
2、srem key element 將集合key中的element移除
3、scard key 計算集合大小
4、sismember key it 判斷it是否在集合中
5、srandmember key count 從集合中隨機挑count個元素
6、spop key 從集合中隨機彈出一個元素
7、smembers key 獲取集合所有元素
8、sdiff key key [key...] 獲取差集
9、sinter key key [key...] 獲取交集
10、sunion key key [key...] 獲取並集
5、zSet:
1、zadd key score element 添加元素
2、zrem key element 刪除元素
3、zscore key element 返回元素的score
4、zincrby key increScore element 增加或減少元素的score
5、zcard key 返回元素的總個數
6、zrank key element 返回元素的排名位置(升序)
7、zrange key start end withscores 返回指定索引範圍的升序元素[score]
8、zrangebyscore key min max withscores 返回指定score範圍的升序元素
9、zcount key min max 返回有序集合內在指定score範圍內的個數
10、zremrangebyrank key start end 刪除指定排名內的升序元素
11、zremrangebyscore key min max 刪除指定分數內的升序元素
12、zrevrank 返回元素的排名位置(降序)
13、zrevrange 返回指定索引範圍的降序元素[score]
14、zrevrangebyscore 返回指定score範圍的降序元素
15、zinterstore 交集
16、zuninstore 並集
Redis API的使用與理解