key定義的注意點:
1)key不能過長,也不能太短
2)key需要有統一的命名規范
3)在同一個名稱空間(database),key必須要保持唯一
* 字符串(string)
查看幫助: help @string 或者 help COMMAND
value最多可以容納的數據長度是512M
常用命令:
~~~
192.168.20.144:6379> set company als nx (nx表示,當key(company)不存在,者就賦值,如果存在,就報nil)
OK
192.168.20.144:6379> get company (get命令:獲取key的值)
"als"
192.168.20.144:6379> append company lsf (append命令: 追加)
(integer) 6
192.168.20.144:6379> set person jack
OK
192.168.20.144:6379> get person
"jack"
192.168.20.144:6379> del person (del命令:刪除一個key)
(integer) 1
192.168.20.144:6379> get person
(nil)
192.168.20.144:6379> incr studyID (incr命令:至增,如果原先沒有這個值,就默認是0,然后默認至增為1,所以顯示為1)
(integer) 1
192.168.20.144:6379> incr studyID
(integer) 2
192.168.20.144:6379> incr studyID
(integer) 3
192.168.20.144:6379> incr studyID
(integer) 4
(incrby命令: 指定一次增長多少)
192.168.20.144:6379> incrby studyID 2
(integer) 6
192.168.20.144:6379> incrby studyID 2
(integer) 8
(decr命令:每次依次減少1)
192.168.20.144:6379> decr studyID
(integer) 7
192.168.20.144:6379> decr studyID
(integer) 6
(decrby命令: 指定每次減少幾個)
192.168.20.144:6379> decrby studyID 2
(integer) 4
~~~
* 存儲Hash
~~~
192.168.20.144:6379> hset myhash username jack
(integer) 1
192.168.20.144:6379> hset myhash age 30
(integer) 1
(hset命令:賦值)
192.168.20.144:6379> hmset myhash02 username louis age 20
OK
(hmset命令:一次性設置多個key的值)
192.168.20.144:6379> hget myhash username
"jack"
192.168.20.144:6379> hget myhash02 username
"louis"
(hget命令:獲取指定key的值)
192.168.20.144:6379> hmget myhash username age
1) "jack"
2) "30"
(hmget命令:一次性獲取多個key的值)
192.168.20.144:6379> hgetall myhash
1) "username"
2) "jack"
3) "age"
4) "30"
(hgetall命令:一次性獲取這個hash的所有key和value)
192.168.20.144:6379> hdel myhash02 username age
(integer) 2
192.168.20.144:6379> hgetall myhash02
(empty list or set)
(hdel命令:刪除一個hash中的某個key)
192.168.20.144:6379> hmset myhash02 username louis age 20
OK
192.168.20.144:6379> hget myhash02 age
"20"
192.168.20.144:6379> HINCRBY myhash02 age 5
(integer) 25
(HEXISTS命令:用來判斷指定的key(屬性)是否存在,如果存在,就顯示1,如果不存在者顯示0)
192.168.20.144:6379> HEXISTS myhash username
(integer) 1
192.168.20.144:6379> HEXISTS myhash ages
(integer) 0
(HKEYS命令: 列出指定hash的所有的key)
192.168.20.144:6379> HKEYS myhash
1) "username"
2) "age"
(HVALS命令:列出指定hash的所有value)
192.168.20.144:6379> HVALS myhash
1) "jack"
2) "35"
~~~
* 存儲list
使用數組方式(ArrayList)
使用雙向鏈接方式(LinkedList)
雙向鏈表添加刪除數據
~~~
(lpush和rpush命令:兩端添加)
192.168.20.144:6379> lpush mylist a b
(integer) 2
192.168.20.144:6379> lpush mylist 1
(integer) 3
192.168.20.144:6379> rpush mylist aa
(integer) 4
(Lrange:查看列表的值,start為0,stop:5;-1表示最后一個)
192.168.20.144:6379> LRANGE mylist 0 5
1) "1"
2) "b"
3) "a"
4) "aa"
192.168.20.144:6379> LRANGE mylist 0 -2
1) "1"
2) "b"
3) "a"
(LPOP和RPOP命令:兩端彈出)
192.168.20.144:6379> LPOP mylist
"1"
192.168.20.144:6379> LRANGE mylist 0 5
1) "b"
2) "a"
3) "aa"
192.168.20.144:6379> RPOP mylist
"aa"
192.168.20.144:6379> LRANGE mylist 0 5
1) "b"
2) "a"
(LPUSHX命令:僅當mylist存在,才會被插入相應的值,如果不存在,者顯示0)
192.168.20.144:6379> LLEN mylist
(integer) 2
192.168.20.144:6379> LPUSHX mylist x
(integer) 3
192.168.20.144:6379> LRANGE mylist 0 -1
1) "x"
2) "b"
3) "a"
192.168.20.144:6379> LPUSHX mylist1 x
(integer) 0
192.168.20.144:6379> LSET mylist 1 10
OK
192.168.20.144:6379> LRANGE mylist 0 -1
1) "1"
2) "10"
3) "x"
4) "b"
5) "a"
(linsert命令:在指定位置插入值)
192.168.20.144:6379> LPUSH mylist01 a b c
(integer) 3
192.168.20.144:6379> LRANGE mylist01 0 -1
1) "c"
2) "b"
3) "a"
192.168.20.144:6379> LINSERT mylist01 before b 11
(integer) 4
192.168.20.144:6379> lrange mylist01 0 -1
1) "c"
2) "11"
3) "b"
4) "a"
~~~
* 存儲set
和list類型不同的是,set集合中不允許出現重復的元素
~~~
192.168.20.144:6379> sadd myset01 a b c (向集合中添加成員)
(integer) 3
192.168.20.144:6379> SREM myset01 a (刪除集合中的成員)
(integer) 1
192.168.20.144:6379> SMEMBERS myset01 (顯示集合中的成員)
1) "b"
2) "c"
192.168.20.144:6379> SISMEMBER myset a (判斷集合中是否存在指定的)
(integer) 1
192.168.20.144:6379> sadd mya1 a b c d
(integer) 4
192.168.20.144:6379> sadd myb1 a c 1 2
(integer) 4
192.168.20.144:6379> SDIFF mya1 myb1 (差級運算,這個跟key的順序有關)
1) "b"
2) "d"
192.168.20.144:6379> SDIFF myb1 mya1
1) "1"
2) "2"
192.168.20.144:6379> SINTER mya1 myb1 (交集運算)
1) "a"
2) "c"
192.168.20.144:6379> SUNION mya1 myb1 (并集運算,重復的只會出現一次)
1) "d"
2) "b"
3) "c"
4) "1"
5) "a"
6) "2"
~~~
* 存儲sorted-set
~~~
192.168.20.144:6379> zadd mysort01 100 a
(integer) 1
192.168.20.144:6379> zadd mysort01 100 b
(integer) 1
192.168.20.144:6379> zadd mysort01 99 c
(integer) 1
192.168.20.144:6379> ZRANGE mysort01
(error) ERR wrong number of arguments for 'zrange' command
192.168.20.144:6379> ZRANGE mysort01 0 -1
1) "c"
2) "a"
3) "b"
192.168.20.144:6379> ZREM mysort01 c
(integer) 1
192.168.20.144:6379> ZRANGE mysort01 0 -1
1) "a"
2) "b"
192.168.20.144:6379> ZRANK mysort01
(error) ERR wrong number of arguments for 'zrank' command
192.168.20.144:6379> ZRANK mysort01 c
(nil)
192.168.20.144:6379> ZRANK mysort01 b
(integer) 1
192.168.20.144:6379> ZRANK mysort01 a
(integer) 0
~~~