當前位置: 網站首頁 > 天9國際登錄

Redis基礎認識及常用命令使用(一)--技術流ken

2019-07-15來源:天9國際注冊

?

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 redisredis-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-cli127.0.0.1:6379>

?

在上面已經介紹了幾種redis的數據類型,下面一一進行示范演示

?

字符類型

常用操作

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

127.0.0.1:6379> set age 10OK

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) 5127.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 maleOK

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

127.0.0.1:6379> mset addr jiangsu tel 123 gender maleOK127.0.0.1:6379> MGET addr tel gender1) "jiangsu"2) "123"3) "male"

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

127.0.0.1:6379> set num 1OK127.0.0.1:6379> INCR num(integer) 2127.0.0.1:6379> INCR num(integer) 3127.0.0.1:6379> INCR num(integer) 4127.0.0.1:6379> INCR num(integer) 5127.0.0.1:6379> get num"5"

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

127.0.0.1:6379> DECR num(integer) 4127.0.0.1:6379> DECR num(integer) 3127.0.0.1:6379> DECR num(integer) 2127.0.0.1:6379> get num"2"

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

127.0.0.1:6379> STRLEN tel(integer) 3127.0.0.1:6379> get tel"123"127.0.0.1:6379> STRLEN num(integer) 1127.0.0.1:6379> get num"2"

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

127.0.0.1:6379> DEL age num(integer) 2127.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) 1127.0.0.1:6379> HGET myha ken"123"

3.?HGETALL key? #返回哈希表?key?中,所有的域和值

127.0.0.1:6379> HGETALL myha1) "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 101) "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 101) "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 101) "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) 1127.0.0.1:6379> LRANGE ken 0 101) "4"2) "2"3) "1"4) "7"127.0.0.1:6379> LREM ken 2 2(integer) 1127.0.0.1:6379> LRANGE ken 0 101) "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 kenken1) "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) 1127.0.0.1:6379> SMEMBERS kenken1) "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 91) "baidu"

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

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

?

单机麻将四人无需联