Redis基本操作

Redis數(shù)據(jù)類型

Key + (String set zset list hash)
基本指令
keys * 查看所有鍵
exists <key> 判斷某個鍵是否存在
type <key> 查看鍵的類型
del <key> 刪除某個鍵
expire <key> <seconds>為鍵值設(shè)置過期時間,單位秒
ttl <key> 表示還有多少秒過期-1表示永不過期 -2代表已過期
dbsize 查看當前數(shù)據(jù)庫Key的數(shù)量
Flushdb 清空當前庫
Flushall 通殺全部庫

String:

String是Redis最基本的類型,是二進制,因此可以包含任何數(shù)據(jù),一個Redis中字符串value最多可以是512M
操作:
get <key> 獲取相應(yīng)鍵的值
set <key> <value> 添加鍵值對
append <key> <value> 在原始Value末尾追加
strlen <key> 獲取值的長度
setnx <key> <value> 只有在Key不存在時設(shè)置Key的值
incr <key> 將Key中存儲的數(shù)字值增1(只能操作數(shù)字)
decr <key> 將Key中存儲的數(shù)字值減1
incrby / decrby <key> <步長> 將key中存儲的數(shù)字值按補償+或者-
mget <key> <key> 獲取多個鍵的值
mset <key1> <value1> <key2> <value2>同時設(shè)置一個或多個值
msetnx <key1> <value1> <key2> <value2> 同時設(shè)置一個或多個K-V 并且Key都不存在
getrange <key> <value> <start> <end>
setrange <key> position value
setex <key> <過期時間> <value> 設(shè)置K-V的同時設(shè)置過期時間
getset <key> <value> 以新?lián)Q舊,設(shè)置了新值同時獲得舊值

原子性
原子性是不會被線程調(diào)度機制打斷的操縱.
(1)在單線程中,能夠在單條指令中完成的操作都被認為是原子操作.因為中斷只能發(fā)生在指令之間
(2)在多線程中不會被其他線程打斷的操作就叫原子操作

List

Redis列表是簡單的字符串列表,按照插入順序排序。你可以添加一個元素到列表的頭部(左邊)或者尾部(右邊)
操作:
lpush/rpush <key> <value1> <value2> 從左邊/右邊插入一個或者多個值
pop/rpop <key> 從左/右邊吐出一個值,值在鍵在,值光鍵亡
rpoplpush <key1> <key2> 從<key1>右邊吐出一個值,插到<key2>左邊
lrange <key> <start> <stop> 按照索引下標獲取元素(從左到右)范圍
lindex <key> <index>按照索引下標獲取元素(從左到右)
llen <key> 獲取列表長度
linsert <key> before <value> <newvalue> 在<value>的后面插入<newvalue>
lrem <key><n> <value> 從左邊刪除N個相同value(從左到右)

Set

Redis 的 Set 是 String 類型的無序集合。集合成員是唯一的,這就意味著集合中不能出現(xiàn)重復的數(shù)據(jù)。Redis 中集合是通過哈希表實現(xiàn)的,所以添加,刪除,查找的復雜度都是 O(1)。
操作:
sadd <key> <value> <value> 將多個member元素加入到集合Key.
smembers <key> 取出該集合的所有值
sismember <key> <value> 判斷集合<key>中是否含有value值
scard <key> 返回該集合的元素個數(shù)
srem <key> <value> <value> 刪除某個集合中的元素
spop <key> 隨機從集合中吐出一個值,會刪除元素
srandmember <key> <n> 從集合中取出N個值.不會從集合中刪除
sinter <key1> <key2> 返回兩個集合的交集元素
sunion <key1> <key2> 返回兩個集合的并集
sdiff <key1> <key2> 返回兩個集合的差集

hash

Redis hash 是一個 string 類型的 field(字段) 和 value(值) 的映射表,hash 特別適合用于存儲對象。Redis 中每個 hash 可以存儲 232 - 1 鍵值對(40多億)。
操作:
hset <key> <filed> <value> 創(chuàng)建hash 給key集合中的filed鍵賦值
hget <key> <filed> 從key集合中取出value
hmset <key1> <filed1> <value1> <filed2> <value2> 批量設(shè)置hash的值
hexists key <field> 查看哈希表key中,給定域field是否存在
hkeys <key> 列出該hash集合的所有field
hvals <key> 列出該hash集合的所有value
hgetall <key> 列出hash集合的所有field和value
hincrby <key> <field> <increment> 為哈希表中field的值加上增量increment
hsetnx <key> <field> <value> 將哈希表中field的值設(shè)置為value 而且僅當field不存在

zset

Redis 有序集合和集合一樣也是 string 類型元素的集合,且不允許重復的成員。不同的是每個元素都會關(guān)聯(lián)一個 double 類型的分數(shù)。redis 正是通過分數(shù)來為集合中的成員進行從小到大的排序。有序集合的成員是唯一的,但分數(shù)(score)卻可以重復。集合是通過哈希表實現(xiàn)的,所以添加,刪除,查找的復雜度都是 O(1)。 集合中最大的成員數(shù)為 232 - 1 (4294967295, 每個集合可存儲40多億個成員)。
操作:
zadd <key> <score> <value> <score2> <value2>: 將一個或多個元素及其score值添加到zset 或者更新已存在成員的分數(shù)
zrange <key> <start> <stop> 返回有序集key中,索引在start和stop范圍的成員
zrangebyscore key min max 返回有序集key中,分數(shù)在minx和max范圍的成員
zrevrangebyscore key max min 返回有序集key中,分數(shù)在max和min范圍的成員
zincrby <key> <increment> <value> 為元素的score加上增強
zrem <key> <value> 刪除該集合下指定值的元素
zcount <key> <min> <max> 統(tǒng)計該集合 分數(shù)區(qū)間內(nèi)的元素個數(shù)
zrank <key> <value> 返回該值在集合中的排名,從0開始

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
禁止轉(zhuǎn)載,如需轉(zhuǎn)載請通過簡信或評論聯(lián)系作者。

相關(guān)閱讀更多精彩內(nèi)容

  • 概念 Redis (Remote Dictionary Server) is an in-memory data ...
    esrever閱讀 264評論 0 0
  • redis的基本操作 stringset key "value"del keygetset key valuege...
    無塵粉筆閱讀 199評論 0 0
  • Redis Redis入門 ??Redis是一個開源(BSD許可),內(nèi)存存儲的數(shù)據(jù)結(jié)構(gòu)服務(wù)器,可用作數(shù)據(jù)庫,高速緩...
    突突兔007閱讀 603評論 0 0
  • 啟動與關(guān)閉Redis服務(wù)、進入Redis環(huán)境 1.啟動Redis服務(wù) redis-server 拷貝的redis....
    仙靈兒閱讀 303評論 0 0
  • 判斷redis服務(wù)的健康狀態(tài). 5種數(shù)據(jù)類型key-value類型. stringhashlistsetsorte...
    Explorer_Mi閱讀 1,770評論 0 0

友情鏈接更多精彩內(nèi)容