reids學習---上

最近這段時間正在學習redis,因爲redis實在linux上面弄得,所以順便學習了一下linux,現在就是redis學習總結。

一、下載

https://redis.io/上進行下載redis,看不懂可以google翻譯一下。下載後會使***.tar.gz,比如redis-4.0.2.tar.gz。

二、安裝

2.1 安裝虛擬機

由於用的是linux,所以用VMware Workstation Pro裝的虛擬機,裝的是centOS7。具體步驟網上查一下。下載centOS7連接https://www.centos.org/download/,我下載的是DVD版本的。然後安裝好虛擬機後我是通過vsftpd上傳到虛擬機上面的。具體上傳步驟個人按個人的辦法上傳。

2.2 解壓文件並安裝

上傳文件後對文件進行解壓。命令: tar -zxvf ***.tar.gz 目錄名
可以解壓到制定目錄下面。然後進入解壓的目錄可以進行安裝。 PREFIX要安裝的目錄 ,默認安裝就是make就行。默認安裝目錄/usr/local/bin。如果make失敗就是未安裝gcc。
make PREFIX=/usr/local/redis install

2.3 啓動

啓動redis前,先創建一個存放redis配置文件的目錄(一般保留默認的配置文件不做修改,然後修改自己拷貝的配置文件,因爲默認配置中redis持久化文件存放的配置是:./ ,也就是啓動配置文件的根目錄),創建文件/opt/redis,然後拷貝redis.conf到此目錄(修改配置文件,第一次學習可以不修改)。
redis-server /opt/redis/redis.conf
啓動時如果不制定配置文件那就使用默認的配置文件。
然後啓動客戶端。其中-h 時ip地址,如果是本機可以不用填寫,-p是端口號,redis默認端口號是6379。
redis-cli -h 127.0.0.1 -p 6379

測試是否連接,輸入ping,返回一個pong,此時redis已經連接成功。也可以進行進程查看 ps -ef | grep redis

127.0.0.1:6379> ping
PONG

、基本操作

在redis中輸入命令按tab鍵可以自動補全。redis默認索引都是從零開始的。

3.1 key及簡單命令

跳轉庫,redis默認是16個庫,0-15數字編號。其中*是庫數字編號。
select * 
查看當前數據庫的key數量
dbsize
清空當前庫
flushdb
清空全部庫(慎用)
flushall
修改配置文件 :CONFIG SET loglevel "notice" 修改log級別
CONFIG SET 配置文件的鍵  要修改配置文件的值
獲取配置文件:
config get 配置文件的鍵
或者獲取全部
config get *
判斷哪個key是否存在
exists key
移動庫的key 到別的庫,把當前庫的key或值剪切到制定的db中。
move key db數字
爲給定的key設置過期時間
exprie key 毫秒值
查看key還有多少秒過期-1 永不過期 -2 過期 過期後無法查看當前key的值
ttl key
查看key是什麼類型
type key


3.2 String類型

String 類型的是單值單value
設置/獲取/刪除/添加到末尾/字符串長度
set key value/get key/del key/apped key val/strlen key
增加減少,必須是數字纔可以加減,沒有key運行默認創建並從0開始
每次加一/每次減一/增加制定數/減少制定數 *爲增加減少的數量
incr key/decr key/incrby key */decrby key *
獲取key的value字符串從start end 的值 0 -1 獲取全部
getrange key start end
設置替換key的value字符串從start開始*的值 *爲設置或替換的字符串如果設置或者替換的字符串大於次字符串的值,中間會存儲\x00 也就是null,比如 set k1 v1 ; setrange k1 4 123 ; get k1 輸出 v1\x00\x00123
setrange key start *
設置多個鍵值
mset key1 value1 key2 value2 key3 value3
獲取多個鍵的值
mget key1 key2 key3
判斷設置多個鍵值,如果鍵值對都不存在就都設置,其中一個鍵值對存在都不設置。
msetnx key1 value1 key2 vlaue2 
先get再set,返回key的舊值
getset key vlaue


3.3 List類型

List類型是單值多value
元素一個接一個地插入到列表頭部,從最左邊的元素到最右邊的元素
lpush key1 v1 v2 v3
輸出命令獲取key 從0 到 -1的值
lrange key1 0 -1
結果
v3
v2
v1
元素一個接一個地插入到列表的尾部,從最左邊的元素到最右邊的元素
rpush key2 v1 v2 v3
輸出命令獲取key 從0 到 -1的值
lrange key2 0 -1
結果
v1
v2
v3
棧頂出庫每次出一個/棧底出庫每次出一個
lpop key / rpop key
按照索引下標獲取元素 從上到下 *號是下表
lindex key *
獲取list長度
llen key
刪除N個value ?刪除幾個 *刪除哪個元素
lrem key ? *
截取制定範圍的值後再賦值給key 開始index 結束index ?是下座標 相當於獲取子串
ltrim key ? ?
從key底部的值出棧 入棧到key1頭部
rpoplpush key key1
在key的值中下座標是index的位置替換value
lset key index value
在key的值value1前面插入value2
linsert key before value1 value2
在key的值value1後面插入value2
linsert key after value1 value2

3.4 Set類型

set類型是單值多value
添加
sadd set v1 v2 v3 v4
查詢
smembers set
單值查詢判斷是不是set中的元素
sismember set v1
獲取集合裏面的元素個數
scard set
刪除集合中元素
srem set value
set中隨機出現*個數
srandmember set *
set中隨機出棧一個
spop set
把set1中的*賦值給set2
smove set1 set2 *
集合(在前一個set不在後一個set)
差集
sdiff set1 set2
交集
sinter set1 set2
並集
sunion set1 set2


3.5 Hash類型(重要)

Hash類型KV模式不變,但V是一個鍵值對
添加
hset key hashekey hashvalue
獲取
hget key hashkey
設置多個Hash的 key value
hmset key hashkey1 hashvalue1 hashkey2 hashvalue2
獲取多個hash的值
hmget key hashkey1 hashkey2
獲取全部hash的鍵值
hgetall key
刪除
hdel key hashkey1
獲取hash個數
hlen key
查詢key裏面是否存在某個hashkey
hexists key hashkey
獲取key下所有的hashkey
hkeys key
獲取key下所有的hashvalue
hvals key
增加hashvalue值(整數) 增加*個
hincrby key hashkey *
增加hashvalue值 (float) 增加*個
hincrbyfloat key hashkey *
如果不存在才存儲
hsetnx key hashkey hashvalue

3.6 Zset 類型

Zset類型是在set基礎上,加一個score值。
之前set是k1 v1 v2 v3
現在Zset 是k1 score1 v1 score2 v2
添加
zadd key score1 v1 score2 v2
查詢 (加withscores) 不加值查詢全部v值
zrange key 0 -1
加查詢全部值
zrange key 0 -1 withscores

區域查詢
zrangebyscore key score1 score2
zrangebyscore key score1 score2 withscores
zrangebyscore key score1 (score2 不包含(
zrangebyscore key score1 score2 limit offset count 分頁

刪除
zrem key v1
統計個數
zcard key
統計區間個數
zcount key score1 score2
獲取下座標
zrank key v1
獲取對應score的值
zscore key v1
逆序獲取v1下座標
zrevrank key v1
逆序獲去全部下座標
zrevrange key 0 -1
翻轉查詢區間
zrevrangebyscore key score2 score1


以上就是redis基本操作,後續是持久化主從複製和哨兵模式等學習。redis學習---下


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章