日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

redis 五大数据结构__常用命令

發(fā)布時間:2025/7/14 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 redis 五大数据结构__常用命令 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

linux 下下載redis數(shù)據(jù)庫

apt install redis

如果提示權(quán)限不夠的話, 直接提權(quán):

sudo apt install redis-server

?

linux啟用、停止服務(wù)

service redis start
service redis stop
service redis restart

xshell進入linux

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

?

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

首先記錄下連接、退出、切換數(shù)據(jù)庫的命令

連接:redis:redis-cli 退出:exit 切換數(shù)據(jù)庫:select n

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

?

一直說redis有五大數(shù)據(jù)結(jié)構(gòu), 都有什么呢。

redis是key-value的數(shù)據(jù)結(jié)構(gòu),每條數(shù)據(jù)都是?個鍵值對

鍵的類型是字符串

注意:鍵不能重復

值的類型分為五種:

  String ------> 字符串

  Hash ------> 哈希

  List ------> 列表

  set ------> 集合

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

?

現(xiàn)在我們就開始詳細的看下每個數(shù)據(jù)類型常用的命令有哪些;

?

string類型

string是redis最基本的類型,一個key對應(yīng)一個value。

設(shè)置給定 key 的值。如果 key 已經(jīng)存儲其他值, SET 就覆寫舊值,且無視類型。

設(shè)置數(shù)據(jù):set key value
設(shè)置多組數(shù)據(jù):mset key value? [key value..]

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

?

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

查看數(shù)據(jù):get key

?

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

追加數(shù)據(jù):append key value

?

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

ttl key

?

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

set key value ex seconds

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

?

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

persist key

?

這里追加一個命令:

進入數(shù)據(jù)庫:user db_name;

    如果不知道數(shù)據(jù)庫是否存在,記得加if exists

?

全局key操作

對redis的五個數(shù)據(jù)類型都適用的命令

rename key newkey 改名

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

keys * # 查看所有的keydel key # 刪除 返回成功的個數(shù) exists key # 查看key是否存在 返回存在個個數(shù) type key # 查看key類型 expire key seconds #設(shè)置過期時間 persist key #移除過期時間

?

list類型

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

添加數(shù)據(jù):rpush key value [value…] 在尾部添加數(shù)據(jù)
     lpush key value [value…] 在頭部添加數(shù)據(jù)

?

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

lindex key index

??#查看第2個

?

查看索引范圍內(nèi)元素的值

查看數(shù)據(jù):lrange key start stop

#查看所有值

?

返回列表的長度

llen key

?

修改數(shù)據(jù):lset key index value

指定索引號進行修改

?

刪除數(shù)據(jù):lpop key 刪除左邊第一個rpop key 刪除右邊第一個

?

Hash類型

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

?

添加數(shù)據(jù):

將field-value設(shè)置到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中元素的個數(shù)

scard key

?

?#?獲取集合中所有元素

smembers key

?

?#?判斷集合存在某個值

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

sismember key member

?

?#?刪除

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

srem key member [member...]

?

# 隨機刪除

spop key

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

?

?

zset類型

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

?

#?添加/修改

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

設(shè)置, 存在就更新

?

?

#?查看

zscore key member

查看score值

?

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

zrange key start stop[withscores]

# 顯示全部

??

?

#?返回集合中 score 在給定區(qū)間的元素

zrangebyscore key min max

?

#?刪除

zrem key member [member...]

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

?

#?刪除集合中索引在給定區(qū)間的元素

zremrangebyrank min max

?

#?刪除集合中 score 在給定區(qū)間的元素

zremrangebyscore min max

?

?

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

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

?

作者:含笑半步顛√

博客鏈接:https://www.cnblogs.com/lixy-88428977

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

轉(zhuǎn)載于:https://www.cnblogs.com/lixy-88428977/p/9563062.html

總結(jié)

以上是生活随笔為你收集整理的redis 五大数据结构__常用命令的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。