redis 五大数据结构__常用命令
linux 下下載redis數據庫
apt install redis如果提示權限不夠的話, 直接提權:
sudo apt install redis-server?
linux啟用、停止服務
service redis startservice 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 secondsset 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 * # 查看所有的keydel key # 刪除 返回成功的個數 exists key # 查看key是否存在 返回存在個個數 type key # 查看key類型 expire key seconds #設置過期時間 persist key #移除過期時間?
list類型
List類型是一個字符串列表,可以在列表頭部或尾部添加/刪除數據
在插入數據時,按照插入順序排序,在列表的頭部或者尾部添加元素,
如果該鍵并不存在,Redis將為該鍵創建一個。
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類型
無序集合
元素具有唯一性,不重復
將一個或多個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 表 一樣。
?
作者:含笑半步顛√
博客鏈接:https://www.cnblogs.com/lixy-88428977
聲明:本文為博主學習感悟總結,水平有限,如果不當,歡迎指正。如果您認為還不錯,歡迎轉載。轉載與引用請注明作者及出處。
轉載于:https://www.cnblogs.com/lixy-88428977/p/9563062.html
總結
以上是生活随笔為你收集整理的redis 五大数据结构__常用命令的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PAT L2-005 集合相似度
- 下一篇: 使用git submodule