redisAPI命令和數據結構詳解
通用命令
- keys 所有key
- dbsize 顯示數據庫大小
- exists key 判斷key是否存在
- del key [key …] 刪除key
- expire key seconds 設置key的過期時間
- type key key的類型
keys
這個命令顯示所有key
keys *
keys 還可以用來查看多個符合條件的key。比如下面這個查看ph
開頭的key.
keys ph*
dbsize
這個命令顯示數據庫有多少個key。
執行這個會顯示1.
set hello world
dbsize
exists
這個命令判斷key是否存在
set hello world
exists hello //1
exists hell //0
del
這個命令刪除key
set hello world
del hello //1
del hello //0
expire
設置1秒後過期
set hello world
expire hello 1
查看剩餘的過期時間
ttl hello
去掉過期時間
persist hello
type
查看數據類型,因爲redis支持多種數據類型。
set hello world
type hello //string
字符串類型
字符串類型常用的命令就是set
,get
,del
。
還有其他的:
- incr key key自增1
- decr key key自減1
- incrby key x key自增x
- decrby key x key自減x
- setnx key value key不存在纔會設置。相當於新增
- set key value xx key存在纔會設置。相當於更新,把key更新成value
- setex key 5 value 設置key 5秒後過期
- mset key value key value 設置多個key value
- mget key key key 獲取多個key
- getset key value 設置value後返回舊value
- append key value 把value追加到原來的值的後面
- strlen key 顯示字符串長度
- incrybyfloat key 3.5 支持自增小數
- getrange key start end 獲取指定區間的值
- setrange key offset vlaue 從指定位置設置值
hash類型
- hget key field 獲取hash key 對應的 field的value
- hset key field value 設置hash field value
- hdel key field 刪除 hash key 對應的field
- hgetall key 獲取key下的所有hash數據
- hvals key 獲取key下的所有hash值,不包括field
- hkeys key 獲取key下的所有hash field,不包括value
- hexists key field 判斷 key 下的 field是否存在
- hlen key 判斷hash有多少field
- hmset key field value … 設置多個field value
- hmget key field field 獲取多個field
上面字符串的命令,其實hash都可以使用,比如:
- hsetnx
- hincryby
- hincrybyfloat
list 類型
添加
- rpush key value … 從列表右邊插入值
- lpush key value … 從列表左邊插入值
- linsert key before|after value newValue 在值的前或後面插入新值
刪除
- lpop key 從列表左邊彈出值
- rpop key 從列表右邊彈出值
- lrem key count value 從列表刪除count個值,count=0全刪,count>0從左邊刪除count個,count < 0從右邊刪除count個
- ltrim key start end 只保留列表start到end的值
查詢
- lrange key start end 獲取start到end的值
- lindex key index 獲取index下表的值
- llen key 獲取列表的長度
更新
- lset key index newValue 更新這個下表的值
阻塞獲取,空列表會阻塞,當有數據插入纔會獲取。
- blpop
- brpop
set 類型
- sadd key value 集合裏面添加元素
- srem key value 集合裏面刪除元素
- scard key 獲取集合長度
- sismember key value 判斷value是否在key中
- srandmember key count 從集合隨機挑選count個元素
- spop key count 從集合隨機彈出count個元素,彈出後集合裏就沒有了
- smembers key 獲取集合所有元素
- sdiff key key 獲取多個集合不同的元素,差集
- sinter key key 獲取相同的元素,交集
- sunion key key 獲取全部元素,並集
zset 類型
有序集合一般用來做排行榜。是根據分數來排序的
- zadd key score value 添加分數和值。
- zcard key 獲取有序集合的數量
- zrem key value 刪除值
- zincrby key score value 給值增加分數或者減少分數score可以是負的
- zscore key value 獲取值的分數
- zrange key start end 獲取有序集合的數據,數據按分數從小到大排序
- zrevrange key start end 獲取數據,這個獲取的按分數從大到小排序
- zrangebyscore key start end 按照分數獲取數據
- zcount key start end 按照分數獲取數量
- zremrangebyrank key start end 按照排名刪除數據