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