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

linux 下下載redis數據庫linux

apt install redis

若是提示權限不夠的話, 直接提權:redis

sudo apt install redis-server

 

linux啓用、中止服務sql

service redis start
service redis stop
service redis restart

xshell進入linuxshell

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

 

那麼到這裏,就該進入正題啦。數據庫

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

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

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

 

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

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

鍵的類型是字符串spa

注意:鍵不能重複

值的類型分爲五種:

  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 表 同樣。

 

 

聲明:本文爲博主學習感悟總結,水平有限,若是不當,歡迎指正。若是您認爲還不錯,歡迎轉載。轉載與引用請註明做者及出處。
相關文章
相關標籤/搜索