reids基礎知識和命令

2021-10-25 18:43:58 字數 4774 閱讀 7912

redis本質上是乙個高效能的鍵值資料庫,是nosql資料庫的一種.通常被認為是乙個資料結構伺服器,主要是因為其有著豐富的資料結構

字串string、列表list,、集合set、雜湊表hash、有序集合zset。

計數器,快取,訊息佇列(發布/訂閱功能),分布式鎖實現

速度快:使用標準c寫,所有資料都在記憶體中完成,讀寫速度分別達到10萬/20萬 。

豐富的資料型別 strings, lists, hashes, sets 及 ordered sets 資料型別操作。

自動操作,對不同資料型別的操作都是自動的

快速的主從複製,保證了資料,和服務的安全性

資料庫容量受到物理記憶體的限制

rdb持久化策略:使用快照的方式,是redis預設的方式,

原理:先將資料儲存到記憶體,當資料到達設定的值後,觸發一次轉存操作

aof持久化策略:需要手動開啟.

原理:沒執行一條會更改資料的命令,都會直接持久化到硬碟中指定的aof檔案, 其儲存的不是資料,而是執行的命令

是的,redis為了效率最大化,使用記憶體儲存方法,這樣做可以避免多執行緒會出現的上下文切換,對於乙個記憶體的系統來說,是沒有上下文切換的問題的.

解壓

tar -xvf redis-5.0.4.tar.gz
安裝 在redis的跟目錄下執行/usr/local/src/redis/src

make : 載入環境

返回上圖後使用命令

make install 安裝

修改redis的配置檔案

命令:vim redis.conf進入到配置檔案並可以進行修改

關閉保護模式

開始後台執行

**啟動reids服務 **啟動預設的redis 埠是6379

啟動命令:redis-server redis.conf

進入客戶端命令:redis-cli -p 6379

exit 退出命令介面

進入客戶端測試是否啟動成功

關閉redis命令:

redis-cli -p 6379 shutdown
登入redis-cli -p 5566 -a password檢查key是否存在exists key搜尋某關鍵字ksys *4返回乙個key所影響的vsl的型別type key

命令說明

案例

set新增key-value

set username admin

get根據key獲取資料

get username

strlen

根據key獲取值的長度

strlen key

exists

判斷key是否存在

exists name 返回1存在 0不存在

del刪除redis中的key

del key

keys

用於查詢符合條件的key

keys * 查詢redis中全部的key keys n? 使用佔位符獲取資料 keys nam* 獲取nam開頭的資料

mset

賦值多個key-value

mset key1 value1 key2 value2 key3 value3

mget

獲取多個key的值

mget key1 key2

對某個key的值進行追加

type

檢查某個key的型別

type key

select

切換redis資料庫

select 0-15 redis中共有16個資料庫

flushdb

清空單個資料庫

flushdb

flushall

清空全部資料庫

flushall

incr

自動加1

incr key

decr

自動減1

decr key

incrby

指定數值新增

incrby 10

decrby

指定數值減

decrby 10

expire

指定key的生效時間 單位秒

expire key 20 key20秒後失效

pexpire

指定key的失效時間 單位毫秒

pexpire key 2000 key 2000毫秒後失效

ttl檢查key的剩餘存活時間

ttl key -2資料不存在 -1該資料永不超時

persist

撤銷key的失效時間

persist key

說明:可以用雜湊型別儲存物件和屬性值

例子:user物件

命令說明

案例

hset

為物件新增資料

hset key field value

hget

獲取物件的屬性值

hget key field

hexists

判斷物件的屬性是否存在

hexists key field 1表示存在 0表示不存在

hdel

刪除hash中的屬性

hdel user field [field …]

hgetall

獲取hash全部元素和值

hgetall key

hkyes

獲取hash中的所有字段

hkeys key

hlen

獲取hash中所有屬性的數量

hlen key

hmget

獲取hash裡面指定欄位的值

hmget key field [field …]

hmset

為hash的多個字段設定值

hmset key field value ,[field value …]

hsetnx

設定hash的乙個字段,只有當這個欄位不存在時有效

hsetnx key field value

hstrlen

獲取hash中指定key的值的長度

hstrlen key field

hvals

獲取hash的所有值

hvals user

說明:redis中的list集合是雙端迴圈列表,分別可以從左右兩個方向插入資料.

list集合可以當做佇列使用,也可以當做棧使用

佇列:存入資料的方向和獲取資料的方向相反

棧:存入資料的方向和獲取資料的方向相同

命令說明

案例

lpush

從佇列的左邊入隊乙個或多個元素

lpush key value [value …]

rpush

從佇列的右邊入隊乙個或多個元素

rpush key value [value …]

lpop

從佇列的左端出隊乙個元素

lpop key

rpop

從佇列的右端出隊乙個元素

rpop key

lpushx

當佇列存在時從佇列的左側入隊乙個元素

lpushx key value

rpushx

當佇列存在時從佇列的右側入隊乙個元素

rpushx key value

lrange

從列表中獲取指定返回的元素

lrange key start stop lrange key 0 -1 獲取全部佇列的資料

lrem

從存於 key 的列表裡移除前 count 次出現的值為 value 的元素。 這個 count 引數通過下面幾種方式影響這個操作: · count > 0: 從頭往尾移除值為 value 的元素。 · count < 0: 從尾往頭移除值為 value 的元素。 · count = 0: 移除所有值為 value 的元素。

lrem list -2 「hello」 會從存於 list 的列表裡移除最後兩個出現的 「hello」。 需要注意的是,如果list裡沒有存在key就會被當作空list處理,所以當 key 不存在的時候,這個命令會返回 0。

lset

設定 index 位置的list元素的值為 value

lset key index value

說明:redis中操作可以新增事務的支援.一項任務可以由多個redis命令完成,如果有乙個命令失敗導致入庫失敗時.需要實現事務回滾.

命令說明

案例

multi

標記乙個事務開始

127.0.0.1:6379> multi

exec

執行所有multi之後發的命令 提交

127.0.0.1:6379> exec

discard

丟棄所有multi之後發的命令回滾

Linux基礎知識和命令

ctrl alt f1 回到圖形化介面 ctrl alt f2 進入tty1 ctrl alt f3 進入tty2 dlc localhost date 顯示當前時間 root localhost dlc date 2020年 04月 30日 星期四 10 19 46 cst ls 列出當前目錄下檔...

基礎知識 Linux常見命令

預設列出當前目錄 ls option file ls命令引數 a 列出指定目錄下的所有檔案,包括隱藏檔案 l 長格式列表。如果輸出到終端,則所有檔案大小的總和將輸出到長清單前面的一行中 列印當前工作目錄的完整路徑名 將每個檔案的訪問和修改時間更新為當前時間。如果不是 c 會建立乙個新文件 touch...

基礎知識及命令 1

root tyzz mkdir pv 1 2 3 mkdir created directory 1 mkdir created directory 1 2 mkdir created directory 1 2 3 p 遞迴 建立多級目錄 v 顯示過程 root tyzz rmdir pv 1 2...