列舉與聯合體的介紹與例項
Redis 配置
Redis
配置放在檔名為 redis.conf
的檔案中。
1、獲取配置資訊
語法:
CONFIG GET CONFIG_SETTING_NAME
樣例:
192.168.56.101:0>CONFIG GET port
1) port
2) 6379
2、 編輯配置
語法:
CONFIG SET CONFIG_SETTING_NAME NEW_CONFIG_VALUE
樣例:
192.168.56.101:0>select 6 //選擇資料庫,選不選擇不影響下面設定操作
OK
192.168.56.101:6>CONFIG GET timeout
1) timeout
2) 0
192.168.56.101:6>CONFIG SET timeout 5000
OK
192.168.56.101:6>CONFIG GET timeout
1) timeout
2) 5000
資料操作
Redis
支援五種資料型別:string
(字串),hash
(雜湊),list
(列表),set
(集合)及zset
(sorted set:有序集合)。
1、String(字串)
一個key對應一個value。一個鍵最大能儲存512MB。string型別是二進位制安全的。
192.168.56.101:6>SET name "hello" //存值
OK
192.168.56.101:6>GET name //取值
hello
2、Hash(雜湊)
Redis hash 是一個 string 型別的 field 和 value 的對映表,hash 特別適合用於儲存物件。每個 hash 可以儲存 232 - 1 鍵值對(40多億)。
192.168.56.101:6>HMSET user name "張三" age 18 //存多個值 HMSET KEY_NAME FIELD1 VALUE1 ...FIELDN VALUEN 存單個值用 HSET KEY_NAME FIELD VALUE
OK
192.168.56.101:6>HGET user age //取值 HGET KEY_NAME FIELD_NAME
18
192.168.56.101:6>HGET user name
張三
192.168.56.101:6>HGETALL user //所有的欄位和值 HGETALL KEY_NAME
1) name
2) 張三
3) age
4) 18
5) sex
6) 男
192.168.56.101:6>HKEYS user //獲取key HKEYS key
1) name
2) age
3) sex
192.168.56.101:6>HLEN user //獲取雜湊表中欄位的數量
3
3、List(列表)
Redis 列表是簡單的字串列表,按照插入順序排序。你可以新增一個元素到列表的頭部(左邊)或者尾部(右邊)。列表最多可儲存 232 - 1 元素 (4294967295, 每個列表可儲存40多億)。
192.168.56.101:6>lpush users admin //在users List中插入admin
1
192.168.56.101:6>lpush users guest
2
192.168.56.101:6>lpush users zhangsan
3
192.168.56.101:6>lrange users 0 10 //在users list中取出index為0到10的資料,超出的不顯示
1) zhangsan
2) guest
3) admin
192.168.56.101:6>lrange users
ERR wrong number of arguments for 'lrange' command
192.168.56.101:6>lrange users 0 3
1) zhangsan
2) guest
3) admin
4、Set(集合)
Redis的Set是string型別的無序集合。值不重複。
sadd
新增一個 string 元素到 key 對應的 set 集合中,成功返回1,如果元素已經在集合中返回 0,如果 key 對應的 set 不存在則返回錯誤。語法如下;
sadd key member
樣例:
192.168.56.101:6>sadd tecq redis //存值
1
192.168.56.101:6>sadd tecq redis //插入重複的值,會不成功,返回0
0
192.168.56.101:6>sadd tecq moongodb
1
192.168.56.101:6>sadd tecq rabbitmq
1
192.168.56.101:6>smembers tecq //取值
1) rabbitmq
2) moongodb
3) redis
5、zset(sorted set:有序集合)
Redis zset 和 set 一樣也是string型別元素的集合。且不允許重複的成員。不同的是每個元素都會關聯一個double型別的分數。redis正是通過分數來為集合中的成員進行從小到大的排序。zset的成員是唯一的,但分數(score)卻可以重複。
zadd
命令新增元素到集合,元素在集合中存在則更新對應score,其語法如下:
zadd key score member
樣例:
192.168.56.101:6>zadd nosql 0 redis
1
192.168.56.101:6>zadd nosql 20 moongodb
1
192.168.56.101:6>zadd nosql 0 jedis
1
192.168.56.101:6>zadd nosql 2 neo4j
1
192.168.56.101:6>ZRANGEBYSCORE nosql 0 5 //按照 score 從小到大
1) jedis
2) redis
3) neo4j
192.168.56.101:6>ZRANGEBYSCORE nosql 0 0
1) jedis
2) redis
192.168.56.101:6>ZRANGEBYSCORE nosql 0 20
1) jedis
2) redis
3) neo4j
4) moongodb
key 相關
1、EXISTS KEY_NAME
檢查給定 key 是否存在。若 key 存在返回 1 ,否則返回 0 。
192.168.56.101:6>exists tecp
0
192.168.56.101:6>exists tecq
1
2、DEL KEY_NAME
刪除key。被刪除 key 的數量。
192.168.56.101:6>del name
1
3、Expire KEY_NAME TIME_IN_SECONDS
設定 key 的過期時間,單位為 s(秒)。key 過期後將不再可用。設定成功返回 1 。 當 key 不存在或者不能為 key 設定過期時間時(比如在低於 2.1.3 版本的 Redis 中你嘗試更新 key 的過期時間)返回 0 。
192.168.56.101:6>set name zhangsan
OK
192.168.56.101:6>expire name 30
1
4、 TTL KEY_NAME
以秒為單位返回 key 的剩餘過期時間。
192.168.56.101:6>set name zhangsan
OK
192.168.56.101:6>expire name 60
1
192.168.56.101:6>ttl name //已經過了6s
54