redis數(shù)據(jù)類(lèi)型及api操作(http://redisdoc.com/)
key
keys *
scan 0 match * count 1
exists key 判斷某個(gè)key是否存在
move key db 當(dāng)前庫(kù)就沒(méi)有了涯捻,到指定的庫(kù)中去了
expire key 為給定的key設(shè)置過(guò)期時(shí)間
ttl key 查看還有多少時(shí)間過(guò)期 -1表示永不過(guò)期 -2表示已過(guò)期
type key 查看key是什么類(lèi)型
1.string
string是redis最基本的類(lèi)型暇唾,你可以理解成與Memcached一模一樣的類(lèi)型,一個(gè)key對(duì)應(yīng)一個(gè)value。
string類(lèi)型是二進(jìn)制安全的疮薇。意思是redis的string可以包含任何數(shù)據(jù)耕挨。比如jpg圖片或者序列化的對(duì)象 拥娄。
string類(lèi)型是Redis最基本的數(shù)據(jù)類(lèi)型耸弄,一個(gè)redis中字符串value最多可以是512M
set key value 設(shè)置key value
get key 查看當(dāng)前key的值
del key 刪除key
append key value 如果key存在,則在指定的key末尾添加秒咨,如果key存在則類(lèi)似set
strlen key 返回此key的長(zhǎng)度
以下幾個(gè)命令只有在key值為數(shù)字的時(shí)候才能正常操作
incr key 為執(zhí)定key的值加一
decr key 為指定key的值減一
incrby key 數(shù)值 為指定key的值增加數(shù)值
decrby key 數(shù)值 為指定key的值減數(shù)值
getrange key 0(開(kāi)始位置) -1(結(jié)束位置) 獲取指定區(qū)間范圍內(nèi)的值喇辽,類(lèi)似between......and的關(guān)系 (0 -1)表示全部
setrange key 1(開(kāi)始位置,從哪里開(kāi)始設(shè)置) 具體值 設(shè)置(替換)指定區(qū)間范圍內(nèi)的值
setex 鍵 秒值 真實(shí)值 設(shè)置帶過(guò)期時(shí)間的key雨席,動(dòng)態(tài)設(shè)置菩咨。
setnx key value 只有在 key 不存在時(shí)設(shè)置 key 的值。
mset key1 value key2 value 同時(shí)設(shè)置一個(gè)或多個(gè) key-value 對(duì)。
mget key1 key 2 獲取所有(一個(gè)或多個(gè))給定 key 的值抽米。
msetnx key1 value key2 value 同時(shí)設(shè)置一個(gè)或多個(gè) key-value 對(duì)特占,當(dāng)且僅當(dāng)所有給定 key 都不存在。
getset key value 將給定 key 的值設(shè)為 value 云茸,并返回 key 的舊值(old value)是目。
2.list
它是一個(gè)字符串鏈表,left标捺、right都可以插入添加懊纳;
如果鍵不存在,創(chuàng)建新的鏈表亡容;
如果鍵已存在嗤疯,新增內(nèi)容;
如果值全移除闺兢,對(duì)應(yīng)的鍵也就消失了茂缚。
鏈表的操作無(wú)論是頭和尾效率都極高,但假如是對(duì)中間元素進(jìn)行操作屋谭,效率就很慘淡了脚囊。
Redis 列表是簡(jiǎn)單的字符串列表,按照插入順序排序戴而。你可以添加一個(gè)元素導(dǎo)列表的頭部(左邊)或者尾部(右邊)凑术。
它的底層實(shí)際是個(gè)鏈表
lpush key value1 value2 將一個(gè)或多個(gè)值加入到列表頭部
rpush key value1 value2 將一個(gè)或多個(gè)值加入到列表底部
lrange key start end 獲取列表指定范圍的元素 (0 -1)表示全部
lpop key 移出并獲取列表第一個(gè)元素
rpop key 移出并獲取列表最后一個(gè)元素
lindex key index 通過(guò)索引獲取列表中的元素
llen 獲取列表長(zhǎng)度
lrem key 0(數(shù)量) 值翩蘸,表示刪除全部給定的值所意。零個(gè)就是全部值 從left往right刪除指定數(shù)量個(gè)值等于指定值的元素,返回的值為實(shí)際刪除的數(shù)量
ltrim key start(從哪里開(kāi)始截) end(結(jié)束位置) 截取指定索引區(qū)間的元素催首,格式是ltrim list的key 起始索引 結(jié)束索引
3.set
Redis的Set是string類(lèi)型的無(wú)序扶踊,不能重復(fù)的集合。
sadd key value1 value 2 向集合中添加一個(gè)或多個(gè)成員
smembers key 返回集合中所有成員
sismembers key member 判斷member元素是否是集合key的成員
scard key 獲取集合里面的元素個(gè)數(shù)
srem key value 刪除集合中指定元素
srandmember key 數(shù)值 從set集合里面隨機(jī)取出指定數(shù)值個(gè)元素 如果超過(guò)最大數(shù)量就全部取出郎任,
spop key 隨機(jī)移出并返回集合中某個(gè)元素
smove key1 key2 value(key1中某個(gè)值) 作用是將key1中執(zhí)定的值移除 加入到key2集合中
sdiff key1 key2 在第一個(gè)set里面而不在后面任何一個(gè)set里面的項(xiàng)(差集)
sinter key1 key2 在第一個(gè)set和第二個(gè)set中都有的 (交集)
sunion key1 key2 兩個(gè)集合所有元素(并集)
4.hash
Redis hash 是一個(gè)鍵值對(duì)集合秧耗。
Redis hash是一個(gè)string類(lèi)型的field和value的映射表,hash特別適合用于存儲(chǔ)對(duì)象舶治。
kv模式不變分井,但v是一個(gè)鍵值對(duì)
類(lèi)似Java里面的Map<String,Object>
hset key (key value) 向hash表中添加一個(gè)元素
hget key key 向hash表中獲取一個(gè)元素
hmset key key1 value1 key2 value2 key3 value3 向集合中添加一個(gè)或多個(gè)元素
hmget key key1 key2 key3 向集合中獲取一個(gè)或多個(gè)元素
hgetall key 獲取在hash列表中指定key的所有字段和值
hdel key key1 key2 刪除一個(gè)或多個(gè)hash字段
hlen key 獲取hash表中字段數(shù)量
hexits key key 查看hash表中,指定key(字段)是否存在
hkeys key 獲取指定hash表中所有key(字段)
hvals key 獲取指定hash表中所有value(值)
hincrdy key key1 數(shù)量(整數(shù)) 執(zhí)定hash表中某個(gè)字段加 數(shù)量 霉猛,和incr一個(gè)意思
hincrdyfloat key key1 數(shù)量(浮點(diǎn)數(shù)尺锚,小數(shù)) 執(zhí)定hash表中某個(gè)字段加 數(shù)量 ,和incr一個(gè)意思
hsetnx key key1 value1 與hset作用一樣惜浅,區(qū)別是不存在賦值瘫辩,存在了無(wú)效。
5.zset
Redis zset 和 set 一樣也是string類(lèi)型元素的集合,且不允許重復(fù)的成員。
不同的是每個(gè)元素都會(huì)關(guān)聯(lián)一個(gè)double類(lèi)型的分?jǐn)?shù)伐厌。
redis正是通過(guò)分?jǐn)?shù)來(lái)為集合中的成員進(jìn)行從小到大的排序承绸。zset的成員是唯一的,但分?jǐn)?shù)(score)卻可以重復(fù)。
zadd key score 值 score 值 向集合中添加一個(gè)或多個(gè)成員
zrange key 0 -1 表示所有 返回指定集合中所有value
zrange key 0 -1 withscores 返回指定集合中所有value和score
zrangebyscore key 開(kāi)始score 結(jié)束score 返回指定score間的值
zrem key score某個(gè)對(duì)應(yīng)值(value)挣轨,可以是多個(gè)值 刪除元素
zcard key 獲取集合中元素個(gè)數(shù)
zcount key 開(kāi)始score 結(jié)束score 獲取分?jǐn)?shù)區(qū)間內(nèi)元素個(gè)數(shù)
zrank key vlaue 獲取value在zset中的下標(biāo)位置(根據(jù)score排序)
zscore key value 按照值獲得對(duì)應(yīng)的分?jǐn)?shù)