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...