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