1. 程式人生 > >Redis基礎認識及常用命令使用(一)--轉載

Redis基礎認識及常用命令使用(一)--轉載

Redis簡介

redis是一個key-value儲存系統。和Memcached類似,它支援儲存的value型別相對更多,包括string(字串)、list(連結串列)、set(集合)和zset(有序集合)。這些資料型別都支援push/pop、add/remove及取交集並集和差集及更豐富的操作,而且這些操作都是原子性的。在此基礎上,redis支援各種不同方式的排序。與memcached一樣,為了保證效率,資料都是快取在記憶體中。區別的是redis會週期性的把更新的資料寫入磁碟或者把修改操作寫入追加的記錄檔案,並且在此基礎上實現了master-slave(主從)同步。

Redis 是一個高效能的key-value資料庫。 redis的出現,很大程度補償了memcached這類keyvalue儲存的不足,在部 分場合可以對關係資料庫起到很好的補充作用。它提供了Python,Ruby,Erlang,PHP客戶端,使用很方便。 --摘自360百科

簡而言之redis是屬於非關係型資料庫,儲存結構是:key-value,記憶體-磁碟的儲存方式。

 

Redis的應用場景

1.資料快取

2.session共享(會話保持)

3.作為計數器

4.訊息佇列

5.最新列表

 

Redis的持久化

redis持久化會在磁碟上依賴兩個檔案

資料檔案:rdb

日誌檔案:aof

 

redis實現持久化兩種機制

RDB:週期的將記憶體中的資料備份到磁碟

AOF:藉助於一個日誌檔案,這個檔案會記錄每次操作

 

Redis中的資料型別

字元型別

列表型別

有序集合型別

無序集合型別

雜湊表型別

 

這部分內容大家也可以參考網站 http://redisdoc.com/

 

 

Redis的安裝

 

直接使用yum即可進行安裝

[[email protected] ~]# yum install redis -y

 使用yum安裝的redis版本是3.2的

[[email protected] ~]# rpm -q redis
redis-3.2.12-1.el7.x86_64

如果你想下載安裝最新版本或者更高的版本可以在redis官網站https://redis.io進行下載

 

Redis命令使用

首先啟動redis。redis監聽的是本機的6379埠,可以在配置檔案中進行修改

複製程式碼
[[email protected] ~]# systemctl restart redis
[[email protected] ~]# ss -tnl    
State      Recv-Q Send-Q                   Local Address:Port                                  Peer Address:Port              
LISTEN     0      128                                  *:10050                                            *:*                  
LISTEN     0      128                          127.0.0.1:6379                                             *:*                  
LISTEN     0      128                                  *:111                                              *:*                  
LISTEN     0      128                                  *:22                                               *:*                  
LISTEN     0      128                                 :::10050                                           :::*                  
LISTEN     0      128                                 :::111                                             :::*                  
LISTEN     0      128                                 :::80                                              :::*                  
LISTEN     0      128                                 :::22                                              :::*     
複製程式碼

 

登入redis使用命令redis-cli

[[email protected] ~]# redis-cli
127.0.0.1:6379> 

 

在上面已經介紹了幾種redis的資料型別,下面一一進行示範演示

 

字元型別

常用操作

1. set key value     #將字串值 value 關聯到 key 

127.0.0.1:6379> set age 10
OK

2. get key             #返回 key 所關聯的字串值。

127.0.0.1:6379> get age
"10"

3. APPEND key value    #將 value 追加到 key 原來的值的末尾

127.0.0.1:6379> append age ken
(integer) 5
127.0.0.1:6379> get age
"10ken"

4. MSET key value [key value ...]    #同時設定一個或多個 key-value 對

127.0.0.1:6379> mset addr jiangsu tel 123 gender male
OK

5. MGET key [key ...]   #返回所有(一個或多個)給定 key 的值

127.0.0.1:6379> mset addr jiangsu tel 123 gender male
OK
127.0.0.1:6379> MGET addr tel gender
1) "jiangsu"
2) "123"
3) "male"

6. INCR key  #將 key 中儲存的數字值增一

複製程式碼
127.0.0.1:6379> set num 1
OK
127.0.0.1:6379> INCR num
(integer) 2
127.0.0.1:6379> INCR num
(integer) 3
127.0.0.1:6379> INCR num
(integer) 4
127.0.0.1:6379> INCR num
(integer) 5
127.0.0.1:6379> get num
"5"
複製程式碼

7. DECR key   #將 key 中儲存的數字值減一

複製程式碼
127.0.0.1:6379> DECR num
(integer) 4
127.0.0.1:6379> DECR num
(integer) 3
127.0.0.1:6379> DECR num
(integer) 2
127.0.0.1:6379> get num
"2"
複製程式碼

8. STRLEN key  #返回 key 所儲存的字串值的長度

複製程式碼
127.0.0.1:6379> STRLEN tel
(integer) 3
127.0.0.1:6379> get tel
"123"
127.0.0.1:6379> STRLEN num
(integer) 1
127.0.0.1:6379> get num
"2"
複製程式碼

9. DEL key [key ...]  #刪除給定的一個或多個 key

複製程式碼
127.0.0.1:6379> DEL age num
(integer) 2
127.0.0.1:6379> keys *
1) "gender"
2) "addr"
3) "name"
4) "tel"
複製程式碼

 

雜湊表型別

常用操作

1.HSET key field value  #將雜湊表 key 中的域 field 的值設為 value 

127.0.0.1:6379> hset myha ken 123
(integer) 1

 

2.HGET key field返回雜湊表 key 中給定域 field 的值

127.0.0.1:6379> hset myha ken 123
(integer) 1
127.0.0.1:6379> HGET myha ken
"123"

3. HGETALL key  #返回雜湊表 key 中,所有的域和值

127.0.0.1:6379> HGETALL myha
1) "ken"
2) "123"

 

列表型別

常用操作

1.LPUSH key value [value ...]  #將一個或多個值 value 插入到列表 key 的表頭

127.0.0.1:6379> lpush ken 1 2 3 4
(integer) 4

2.RPUSH key value [value ...] #將一個或多個值 value 插入到列表 key 的表尾(最右邊)

127.0.0.1:6379> RPUSH ken 7 8 9
(integer) 7

3.LRANGE key start stop  #返回列表 key 中指定區間內的元素,區間以偏移量 start 和 stop 指定

複製程式碼
127.0.0.1:6379> LRANGE ken 0 10
1) "4"
2) "3"
3) "2"
4) "1"
5) "7"
6) "8"
7) "9"
複製程式碼

4. RPOP key  #移除並返回列表 key 的尾元素

複製程式碼
127.0.0.1:6379> RPOP ken
"9"
127.0.0.1:6379> LRANGE ken 0 10
1) "4"
2) "3"
3) "2"
4) "1"
5) "7"
6) "8"
127.0.0.1:6379> RPOP ken
"8"
127.0.0.1:6379> LRANGE ken 0 10
1) "4"
2) "3"
3) "2"
4) "1"
5) "7"
複製程式碼

5. LLEN key #返回列表 key 的長度

127.0.0.1:6379> LLEN ken
(integer) 5

6. LREM key count value  #根據引數 count 的值,移除列表中與引數 value 相等的元素

複製程式碼
127.0.0.1:6379> LREM ken 2 3
(integer) 1
127.0.0.1:6379> LRANGE ken 0 10
1) "4"
2) "2"
3) "1"
4) "7"
127.0.0.1:6379> LREM ken 2 2
(integer) 1
127.0.0.1:6379> LRANGE ken 0 10
1) "4"
2) "1"
3) "7"
複製程式碼

 

無序集合

常用操作

1.SADD key member [member ...]  #將一個或多個 member 元素加入到集合 key 當中

127.0.0.1:6379> SADD kenken 1 2 3 
(integer) 3

2.SMEMBERS key  #返回集合 key 中的所有成員

127.0.0.1:6379> SMEMBERS kenken
1) "1"
2) "2"
3) "3"

3.SCARD key #返回集合 key 的基數(集合中元素的數量)

127.0.0.1:6379> SCARD kenken
(integer) 3

4.SREM key member [member ...]  #移除集合 key 中的一個或多個 member 元素

127.0.0.1:6379> SREM kenken 3
(integer) 1
127.0.0.1:6379> SMEMBERS kenken
1) "1"
2) "2"

 

有序集合

常用操作

1. ZADD key score member [[score member] [score member] ...]  #將一個或多個 member 元素及其 score 值加入到有序集 key 當中

127.0.0.1:6379> ZADD ke 9 baidu
(integer) 1

2.ZRANGE key start stop [WITHSCORES] #返回有序集 key 中,指定區間內的成員

127.0.0.1:6379> ZRANGE ke 0 9
1) "baidu"

3.ZREM key member [member ...] #移除有序集 key 中的一個或多個成員

127.0.0.1:6379> ZREM ke baidu
(integer) 1
127.0.0.1:6379> ZRANGE ke 0 -9
(empty list or set)