redis 五大數據結構__常用命令


linux 下下載redis數據庫

apt install redis

如果提示權限不夠的話, 直接提權:

sudo apt install redis-server

 

linux啟用、停止服務

service redis start
service redis stop
service redis restart

xshell進入linux

cd ..  # 返回根目錄
ls # 查看文件
cd etc/

 

那么到這里,就該進入正題啦。

首先記錄下連接、退出、切換數據庫的命令

連接:redis:redis-cli
退出:exit
切換數據庫:select n

數據庫沒有名稱,默認有16個,通過0-15來標識,連接redis默認選擇第一個數據庫(通過select n切換)

 

一直說redis有五大數據結構, 都有什么呢。

redis是key-value的數據結構,每條數據都是⼀個鍵值對

鍵的類型是字符串

注意:鍵不能重復

值的類型分為五種:

  String ------> 字符串

  Hash ------> 哈希

  List ------> 列表

  set ------> 集合

  Zset ------> 有序集合

 

現在我們就開始詳細的看下每個數據類型常用的命令有哪些;

 

string類型

string是redis最基本的類型,一個key對應一個value。

設置給定 key 的值。如果 key 已經存儲其他值, SET 就覆寫舊值,且無視類型。

設置數據:set  key  value
設置多組數據:mset key value  [key value..]

為多組key設置值,該操作為原子操作,要么一組都設置成功,要么一組都設置失敗;

 

返回一個或多個key的值,若key不存在返回nil,若key存在但不是字符串返回nil

查看數據:get  key

 

將指定的值追加到key末尾,若key不存在,則創建並賦值,返回追加后的字符串長度

追加數據:append  key  value

 

返回key的剩余生存時間, -1 表示永久存在, -2表示不存在

ttl key

 

設置 key的同時,設置過期時間(單位:秒) key 過期后將不再可用,會被系統自動刪除。

set key value ex seconds 

set age 18 ex 20 
或 setex key seconds value 例: ( setex sex 20 '男' )

 

移除指定key的生存時間,成功返回1,若key不存在或不存在生存時間時返回0;

persist key

 

這里追加一個命令:

進入數據庫:user db_name;

    如果不知道數據庫是否存在,記得加if exists

 

全局key操作

對redis的五個數據類型都適用的命令

rename key newkey    改名

當key和newkey相同或者key不存在時返回一個錯誤,當newkey已存在時則會覆蓋;

復制代碼
     keys *                    # 查看所有的key
     
     del key                    # 刪除    返回成功的個數
     
     exists key                # 查看key是否存在  返回存在個個數
     
     type key                # 查看key類型
     
     expire key seconds        #設置過期時間    
        
     persist key                #移除過期時間
復制代碼

 

list類型

List類型是一個字符串列表,可以在列表頭部或尾部添加/刪除數據
在插入數據時,按照插入順序排序,在列表的頭部或者尾部添加元素,
如果該鍵並不存在,Redis將為該鍵創建一個。

添加數據:rpush key value [value…]   在尾部添加數據
     lpush key value [value…] 在頭部添加數據

 

返回列表中元素的值。index從0開始,當index超出索引時返回null

lindex key index

  #查看第2個

 

查看索引范圍內元素的值

查看數據:lrange key start stop

#查看所有值

 

返回列表的長度

llen key

 

修改數據:lset key index value

指定索引號進行修改

 

刪除數據:lpop key    刪除左邊第一個
        rpop key    刪除右邊第一個

 

Hash類型

是一個鍵值(key=>value)對集合。是string 類型的 field 和 value 的映射表
     user                 { name:juhao,             age:18 }
user -> key(鍵)      name,age ->field(域)       juhao,18 ->value(值)

 

添加數據:

將field-value設置到hash表中,若key不存在會新建hash表再賦值,已存在則會覆蓋;

hset key field value

 

查看域值:

hget key field

 

批量添加:

hmset key field value field2 value2

 

查看所有的value:

hvals key

 

查看所有的field:

hkeys key

 

# 獲取多個 field

hmget key field[field...]

 

# 獲取全部`field` 和 `value

hgetall key

 

 # 查看有幾個鍵值對

hlen key

 

# 判斷hash表中指定域是否存在,返回1,若key或field不存在則返回0;

hexists key field

 

# 刪除

hdel key field

 



Set類型

元素為string類型
無序集合
元素具有唯一性,不重復

sadd key member [member...]     增加元素

將一個或多個member元素加入到集合key中,若member已存在那么會忽略此元素,

 

# 返回集合key中元素的個數

scard key

 

 # 獲取集合中所有元素

smembers key

 

 # 判斷集合存在某個值

判斷member在key中是否已存在, 返回0或1 

sismember key member

 

 # 刪除

 移除一個或多個元素,不存在的member會被忽略,返回被移除元素個數

srem key member [member...]

 

# 隨機刪除

spop key

移除並返回集合中的一個隨機元素,當key不存在時返回NULL

 

 

zset類型

類似於Set,不同的是Sorted中的每個成員都分配了一個分數(Score)用於對其中的成員進行排序(升序)。
zset的成員是唯一的,但分數(score)卻可以重復。

 

# 添加/修改

zadd key score member[ [score member] ..]

設置, 存在就更新

 

 

# 查看

zscore key member

查看score值

 

# 按索引返回key的成員, withscores表示顯示score

zrange key start stop[withscores]

# 顯示全部

  

 

# 返回集合中 score 在給定區間的元素

zrangebyscore key min max

 

# 刪除

zrem key member [member...]

移除有序集合中的一個或多個元素,若member不存在則忽略;

 

# 刪除集合中索引在給定區間的元素

zremrangebyrank min max

 

# 刪除集合中 score 在給定區間的元素

zremrangebyscore  min max

 

 

寫到這里,redis整理完畢,命令不要死記硬背,用多了自然就記住了。

就像大家寫sql  ,新建 create table ;插入insert into; 查詢 select * from 表 一樣。

 

 

聲明:本文為博主學習感悟總結,水平有限,如果不當,歡迎指正。如果您認為還不錯,歡迎轉載。轉載與引用請注明作者及出處。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM