**
redis預設有16個資料庫,0,1,2…15
在redis上所做的所有資料操作,都是預設在0號資料庫上操作
若要切換資料庫,則需要使用命令select + 資料庫名
資料庫和資料庫之間不能共享鍵值對
鍵值對的移植:move key 1 將當前庫的指定key移植到1號資料庫中
清空當前資料庫中的資料:flushdb
清空所有資料庫中的資料:flushall
redis資料型別:
redis使用的是鍵值對來儲存資料
key:全部是字串
value:有五種資料型別–》string(字串),hash(雜湊),list(列表),set(集合)及zset(sorted set:有序集合)。
通用的操作方法:
萬用字元: * 表示任意0個或多個字元,?表示任意乙個字元
keys pattern獲取所有與pattern匹配的key
keys * 查詢所有的key
dbsize 返回當前資料庫中key的數目
del key1 key2…刪除指定的key
exists key判斷該key是否存在,1表示存在,0表示不存在
rename key newkey 為當前key重新命名
expire key seconds 設定過期時間,單位:秒,如果該key過時了,redis會將其刪除
ttl key 獲取該key所剩的超時時間,如果沒有設定超時,返回-1。如果返回-2表示超時不存在
type key獲取指定key的型別,如果key不存在則返回none
quit 退出客戶端
info 檢視redis的一些資訊
string型別的操作方法:hash型別的操作方法:
redis中的hash型別可以看成具有key,value的map容器。所以該型別非常適合儲存值物件的資訊
hash–> key–> user value–>
hash特點:占用的磁碟空間極少
賦值:hset key field value 為指定的key設定field/value(鍵值對)
hmset key field value[field2 vlaue2…] 設定key中的多個field/value(鍵值對)
取值:hget key field 得到指定key中指定field的值
hmget key field[field2…] 得到指定key中多個field對應的value值
hgetall key 得到key中所有的field-value
刪除:hdel key field (若該hash中已經不存在field-value,則鍵值對會被**)
del key
擴充套件:自增:hincrby key field increment(操作的資料只能是數字)
判斷指定的key中的field是否存在:hexists key field
獲取key所包含的field數量:hlen key
獲得所有的字段:hkeys key
獲得所有的字段值:hvals key
list的操作方法:
redis選擇了雙向鍊錶作為list底層的資料結構,因為redis操作中最多的操作是進行元素的增刪
檢視列表:lrange key start end獲取鍊錶中從start到end元素的值,start,end從0開始計數;也可為負數,-1則表示鍊錶尾部的元素
lrange key 0 -1 檢視鍊錶中所有元素
賦值: 從左邊開始插入資料–》lpush key value[value2…]
從右邊開始插入資料–》rpush key value[value2…]
刪除:lpop key返回並彈出指定key關聯鍊錶的第乙個元素,即頭部元素。如果該key不存在,返回nil
rpop key從尾部彈出元素
擴充套件:llen key: 返回指定的key關聯的鍊錶中的元素的數量
lrem key count value: 刪除count個值為value的元素,若count=0,則刪除該鍊錶中所有值為value的元素(效率極為低下)
lset key index value: 通過索引替換元素(賦索引操作,效率不高)
linsert key before|after pivot value :在pivot元素前或者後插入value這個元素(賦索引操作,效率不高)
rpoplpush resource destination: 將鍊錶中的尾部元素彈出並新增到頭部【迴圈操作】可以自我迴圈,也可以兩個鍊錶之間迴圈
set型別的操作方法:
set中元素不會重複,並且不能保證順序
賦值:sadd key value[value…] 向set中新增元素
取值:smembers key 獲取set中所有的元素
sismember key member 判斷set中是否存在該元素
刪值:srem key member[member…] 刪除元素
差集運算:sdiff key1 key2…
交集運算:sinter key1 key2…
並集運算:sunion key1 key2…
擴充套件:scard key: 獲取set中成員的數量
srandmember key: 隨機返回set中乙個成員
sdiffstore destination key1 key2… 將key1,key2返回的差集儲存在destination中
sinterstore destination key1 key2… 將key1,key2返回的交集儲存在destination中
sunionstore destination key1 key2… 將key1,key2返回的並儲存在destination中
zset(有序set)型別的操作方法:
專門用來做排行榜!!
賦值:zadd key score member [score member…](將所有成員及該成員的分數存放到zset中
如果該元素已經存在則會用新的分數替換原有的分數。返回值是新加入到集合的元素個數,不包含之前已經存在的元素)
檢視:zsocre key member : 返回指定成員的分數
zcard key : 獲取集合中的成員數量
刪除:zrem key member[member…] 移除集合中指定的成員,可以指定多個成員
zremrangebyrank key start stop 按照排名範圍刪除元素
zremrangebyscore key min max 按照分數範圍來刪除元素
範圍查詢:zrange key 0 -1 查詢所有元素
zrange key start end[withscores] 分數由小到大排列
zrevrange key start end[withscores] 分數由大到小排列
zrangebyscore key min max[withscores] [limit offset count] 返回分數在【min,max】的成員並按照分數從低到高排序
擴充套件:zincrby key increment member : 設定指定成員的增加的分數,返回值為增加後的分數
zcount key min max: 獲取分數在【min,max】之間的成員
zrank key member: 返回成員在集合中的排名的索引(從小到大,索引從0開始)
arevrank key member: 返回成員在集合的排名的索引(從大到小,索引從0開始)
redis的其它特性:
訊息訂閱與發布
subscribe channel 訂閱頻道,例:subscribe mychat,訂閱mychat這個頻道
psubscribe channel* 批量訂閱頻道 ,例:psubscribe s*,訂閱以「s」開頭的頻道
publish channel content 在指定的頻道中發布訊息,如publish mychat 『today is a newday』
Redis 五種資料型別
一 前言 上篇部落格已經對redis的一些基本知識做了一些簡介,這篇部落格,將簡單介紹一些redis的五種資料型別。分別為string 字串 hash 雜湊 list 鍊錶 set 集合 zset 有序集合 對這些型別可以執行很多原子性的操作 比如向乙個string型別的value後面追加字串 向l...
Redis 五種資料型別
目錄 redis共有strings hashs lists sets sorted sets五種資料型別,可以說已經比較豐富了。下面只對這幾種資料型別的資料結構與用途做簡要介紹。至於每種資料型別的操作api,這裡只簡單一提,不再一一詳細介紹,有需要的使用者可以google即可。string是最簡單的...
Redis 五種資料型別
redis支援五種資料型別 string 字串 hash 雜湊 list 列表 set 集合 及zset sorted set 有序集合 資料型別一 字串 0.1 6379 set name hubotao2 ok127.0 0.1 6379 get name hubotao2 資料型別二 hash...