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)