1. 程式人生 > 其它 >列舉與聯合體的介紹與例項

列舉與聯合體的介紹與例項

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