Redis的數(shù)據(jù)類型
String 字符串類型
一個鍵最多存儲512M
1> SET:設置key對應值為value
語法: SET key value
SET str1 'xdl'
2> GET:根據(jù)KEY找到對應的值
語法: GET key
注意:如果key不存在 返回nil
3>GETRANGE:返回字符串中的一部分
語法: GETRANGE key start end
GETRANGE str1 0 1
GETRANGE str1 0 -1
GETRANGE str1 0 -2
GETRANGE str1 0 1000
4>GETSET:設置指定key的值,并返回舊值
語法: GETSET key value
SET str2 'itxdl'
GETSET str2 'xdl'
注意:當key不存在返回nil
5>MSET:一次設置多個鍵值對
語法:MSET key value [key value .......]
MSET str4 'xdl' str5 'itxdl' str6 'xdlo2o'
6>MSETNX:一次設置多個key-value對,只有所有的key都不存在的時候才會成功
語法: MSETNX key value [key value .....]
MSETNX str10 'a' str11 'b' str12 'c'
MSETNX str12 'd' str13 'e'
7>MGET:一次得到多個鍵值
語法: MGET key key
MGET str4 str5 str6
8>STRLEN:獲取key的字符串長度
語法: STRLEN key
STRLEN str4
9>SETRANGE:相當于字符串替換
語法:SETRANGE key offset value
SET str7 'hello'
SETRANGE str7 5 'xdl'
注意: 如果設置key原來的字符串的長度比偏移量小,就會以零字節(jié)(\x00)來填充
10>SETNX:只有KEY不存在的時候才能設置成功
語法: SETNX key value
SETNX str7 'hello'
11>SETEX:設置一個KEY并且設置一個過期時間
語法: SETEX key seconds value
SETEX str8 30 'xdl'
12>PSETEX: 以毫秒為單位設置KEY的生存周期
語法:PSEREX key milliseconds value
PSETEX set9 20000 'hello'
13> INCR:對key中存儲的數(shù)字加1
語法: INCR key
SET str14 1
INCR str14
INCR str15
注意:key如果不存在,則會先初始化為0,在進行INCR操作
14>INCRBY:將key中存儲的數(shù)字加上指定增量
語法: INCRBY key INCREMENT
SET str16 10
INCRBY str16 5
INCRBY str16 1.5
15>INCRBYFLOAT:將key中存儲的數(shù)字加上指定浮點數(shù)
語法; INCRBYFLOAT key increment
SET str17 1
INCRBYFLOAT str17 1.5
16>DECR:將key中存儲的數(shù)字減1
語法: DECR key
SET str18 1
DECR str18
17>DECRBY:將key中存儲的數(shù)值減指定值
語法: DECRBY key decrement
SET str19 20
DECRBY str19 5
18>APPEND:通過APPEND將值追加到字符串末尾
語法:APPEND key value
SET str20 'xdl'
APPEND str20 'o2o'
LIST列表類型
1>LPUSH:向列表左端添加元素
語法: LPUSH key value value ....
LPUSH list1 a b c
2>RPUSH:向列表右端添加元素
語法: RPUSH key value ....
RPUSH list1 d e
3>LRANGE:獲取列表片段
語法: LRANGE key start stop
LRANGE list1 0 -1
4>LPUSHX:向列表頭部添加元素,只有key存在才添加
語法: LPUSHX key value
LPUSHX list1 a
5>RPUSHX:向列表尾部添加元素,只有key存在才添加
語法: RPUSHX key value
6>LPOP:將列表頭部的元素彈出
語法: LPOP key
LPOP list1
7>RPOP:彈出列表尾部元素
語法: RPOP key
RPOP list1
8>LLEN:獲取列表長度
語法 LLEN key
LLEN list1
9>LREM:刪除列表中的指定值
語法: LREM key count value
count >0 :從列表頭部開始,向尾部搜索,移除與value相等的元素,移除count個
count <0 :從列表的尾部開始,向頭部搜索,,移除與value相等的元素,移除count個
count = 0:移除列表中所有與value相等的元素
LPUSH list3 a b c d a e b d c b e d
LREM list3 2 a
LREM list3 -2 b
LREM list3 0 d
10>LINDEX:獲取指定索引元素上的值
語法: LIDEX key index
LINDEX list3 3
11>LSET:設置指定元素的值
語法: LSET key index value
LSET list3 10 a
12>LTRIM:只保留列表片段
語法:LTRIM key start stop
LTRIM list3 0 3
LPUSH list3 a b c a b c a b c
LTRIM list3 0 1000
13>LINSERT 向列表中插入元素
語法: LINSERT key BEFORE|AFTER pivot value
LPUSH list4 a b c d
LINSERT list4 BEFORE 'b' 'x'
LINSERT list4 AFTER 'b' 'x'
14>RPOPLPUSH:將元素從一個列表轉移到另一個列表
語法 RPOPLPUSH source destination
LPUSH list5 a b c
LPUSH list6 x y z
RPOPLPUSH list5 list6
SET集合類型:無序集合
1> SADD:向集合中添加一個元素
語法 SADD key value [,.......]
SADD set1 xdl
SADD set1 itxdl
2>SMEMBERS:返回指定集合中的元素
語法: SMEMBERS key
SMEMBERS set1
3>SISMEMBER:檢查member是否是集合中的成員
語法:SISMEMBER key member
SISMEMBER set1 xdl
4>SREM:刪除集合中一個或多個成員
語法:SREM key member [member ....]
SREM set1 xdl
5>SPOP:刪除并返回集合中的隨機元素
語法: SPOP key
SPOP set1
6>SRANDMEMBER:隨機返回集合中元素
語法: SRANDMEMBER key count
注意:
count 為正數(shù),而且小于集合中的元素,返回一個隨機元素的集合數(shù)組,
count 數(shù)大于集合中的個數(shù)的時候,返回整個集合
count 為負數(shù),返回一個數(shù)組,數(shù)組中的成員可能出現(xiàn)重復,數(shù)組的長度是count的絕對值
SRANDMEMBER set1 -3
7>SDIFF:返回集合的差集
語法: SDIFF key key ....
SADD set2 a b c d
SADD set3 c d e f
SADD set4 a e
SDIFF set3 set2
SDIFF set2 set3 set4
8>SINTER:返回集合的交集
語法: SINTER key key key ...
SINTER set2 set3
SADD set5 c
SINTER set2 set3 set5
9>SUNION:返回集合中并集
語法: SUNION key key ...
SUNION set2 set3
SUNION set2 set3 set4
10>SCARD:返回集合中元素個數(shù)
語法: SCARD key
SCARD set2
11>SDIFFSTORE:將差集的結果保存到指定的集合當中
語法: SDIFFSTORE destination key key ....
SDIFFSTORE set6 set2 set3
12>SINTERSTORE:將交集的結果保存到指定的集合當中
語法: SINTERSTORE destination key key ....
SINTERSTORE set7 set2 set3
13>SUNIONSTORE:將并集的結果保存到指定的集合當中
語法: SUNIONSTORE destination key key ....
SUNIONSTORE set8 set2 set3
14>SMOVE:將集合中的元素移動另一個集合中
語法 SMOVE source destination member
SMOVE set3 set2 e
Hash類型
1>HSET:將哈希表中的key中的field設置成指定的value
語法:HSET key field value
HSET h1 username 'zhangsan'
HSET h1 password '123'
HSET h1 age '18'
2>HGET:返回哈希表key中給的field的值
語法: HGET key field
HGET h1 username
HGET h1 age
3>HSETNX:將hash表中的field設置成指定的值,只有field不存在才能成功,如果field存在,操作無效
語法 HSETNX key field value
HSETNX h1 aaa '20'
HSETNX h1 aaa '21'
4>HMSET:通過多個 field value設置到hash表key中
語法 HMSET key field value field value .....
HMSET h2 username 'lisi' age '20' password '456'
5>HMGET:一次獲得hash表key中多個field的值
語法: HMGET key field field .....
HMGET h2 username age password
HMGET h2 username age password aaa
注意:如果hash表key中field不存在,返回nil
6>HGETALL:返回hash表key中所有的field和value
語法 HGETALL key
HGETALL h2
7>HKEYS:返回hash表key中的所有的field
語法 HKEYS key
HKEYS h2
8>HVALS:返回hash表key中所有的field的對應值
語法 HVALS key
HVALS h2
9>HEXISTS:檢測hash中key的field是否存在
語法: HEXISTS key field
HEXISTS h2 username
HEXISTS h2 aaa
10>HLEN:返回hash表key中的field的數(shù)量
語法 HLEN key
HLEN h2
11>HINCRBY :給hash表key中的field做增量操作
語法 HINCRBY key field increment
HSET h3 age 20
HINCRBY h3 age 5
12>HINCRBYFLOAT:給hash表key中的field做增量浮點操作
語法: HINCRBYFLOAT key field increment
HSET h3 aaa '12.2'
HINCRBYFLOAT h3 aaa 2.5
13>HDEL:刪除hash中key的指定field,可刪除一個或多個
語法: HDEL key field field .....
HDEL h2 username
HGETALL h2
zset(sorted set)有序集合
1> ZADD:將元素及其分數(shù)添加到集合中
語法:ZADD key score member [score member]
ZADD zset 100 xdl
ZADD zset 98 zhangsan 98 list 80 test 78 test1 85 test2
ZADD zset 60 test2 67 test3 56 test4
2> ZSCORE:獲得指定元素的分數(shù)
語法:ZSCORE key member
ZSCORE zset xdl
ZADD zset 12.3 test5
3> ZRANGE:按照元素分數(shù)從小到大的順序返回指定索引start到stop之間所有元素(包含兩端)
語法:ZRANGE key start stop [WITHSCORES]
ZRANGE zset 0 -1
ZRANGE zset 0 -1 WITHSCORES
ZRANGE zset 0 2 WITHSCORES
ZRANGE zset 0 2000 WITHSCORES
ZRANGE zset 1000 2000 WITHSCORES
ZADD zset 60 test6 60 test7 60 test8 60 test9
注意:當兩個元素的分數(shù)相同的時候,Redis在排序按照字典的順序(0<9<A<Z<a<z),如果使用的是UTF-8的編碼方式的中文同樣按照字典順序排列
4》ZREVRANGE:和ZRANGE相反,按照分數(shù)從大到小的順序
語法:ZREVRANGE key start stop [WITHSCORES]
ZREVRANGE zset 0 -1 WITHSCORES
5》ZRANGEBYSCORE:獲得指定分數(shù)范圍內的元素,按照分數(shù)從小到大的順序,返回的是分數(shù)在指定的min到max的元素
語法:ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]
#獲得分數(shù)80~90之間的所有元素 包含80 90
ZRANGEBYSCORE zset 80 90`
ZADD zset 81 test9 82 test10 83 test11 84 test12 84 test13 88 test14 89 test15 90 test16
ZRANGEBYSCORE zset 80 90 WITHSCORES
ZRANGEBYSCORE zset 80 (90 WITHSCORES
ZRANGEBYSCORE zset (80 (90 WITHSCORES
RANGEBYSCORE zset (80 (90 WITHSCORES LIMIT 0 3
#注意:通過(代表不包端點#
6》ZREVRANGEBYSCORE:獲得指定分數(shù)范圍內的元素,按照元素的分數(shù)從大到小的順序返回min和max之間的元素
語法:ZREVRANGEBYSCORE key max min [WITHSCORES] [LIMIT offset count]
ZREVRANGEBYSCORE zset 90 80 WITHSCORES
7》ZINCRBY:操作某個元素的分數(shù),返回操作之后的分數(shù)
語法:ZINCRBY key increment member
ZINCRBY zset 5 test16
ZINCRBY zset -15 test16
8》ZCARD:獲得集合中元素的數(shù)量
語法:ZCARD key
ZCARD zset
9》ZCONUT:獲得指定分數(shù)內的元素的數(shù)量
語法:ZCOUNT key min max
ZCOUNT zset 80 90
COUNT zset (80 (90
10》ZREM:刪除一個或者多個元素,返回刪除元素的個數(shù)
語法:ZREM key member ...
ZREM zset test16
11》ZREMRANGEBYRANK:按照排名范圍刪除元素,按照分數(shù)從小到大的順序刪除所指定的排名范圍內的所有元素
語法:ZREMRANGEBYRANK key start stop
ZADD testRem 1 a 2 b 3 c 4 d 5 e 6 f 7 g 8 h
ZREMRANGEBYRANK testRem 0 2
ZRANGE testRem 0 -1 WITHSCORES
12》ZREMRANGEBYSCORE:按照分數(shù)范圍刪除元素
語法:ZREMRANGEBYSCORE key min max
ZADD testRem1 1 a 2 b 3 c 4 d 5 e 6 f 7 g 8 h
ZREMRANGEBYSCORE testRem1 3 7
ZRANGE testRem1 0 -1 WITHSCORES
13》ZRANK:獲得指定元素的排名,根據(jù)分數(shù)從小到大的順序
語法:ZRANK key member
ZRANK zset xdl
ZRANGE zset 0 -1 WITHSCORES
14》ZREVRANK:獲得指定元素的排名,根據(jù)分數(shù)從大到小的順序
語法:ZREVRANK key member
ZREVRANK zset xdl
ZREVRANGE zset 0 -1 WITHSCORES
15》ZINTERSTORE:計算有序集合的交集,并將結果保存起來
語法:ZINTERSTORE destination numkeys [WEIGHTS weight weight...] [AGGREGATE SUM | MIN | MAX]
ZADD zset2 1 a 2 b 3 c
ZADD zset3 10 a 20 b 30 c
ZINTERSTORE zset4 2 zset2 zset3
ZREVRANGE zset5 0 -1 WITHSCORES
ZINTERSTORE zset4 2 zset2 zset3 AGGREGATE SUM
ZINTERSTORE zset5 2 zset2 zset3 AGGREGATE MIN
ZINTERSTORE zset6 2 zset2 zset3 AGGREGATE MAX
ZINTERSTORE zset7 2 zset2 zset3 WEIGHTS 2 0.2
16》ZUNIONSTORE:計算有序集合并集,將結果保存起來
語法:ZUNIONSTORE destination numkeys key key ... [WEIGHTS weight weight...] [AGGREGATE SUM | MIN | MAX]
ZADD zset8 1 a 2 b 3 c
ZADD zset9 4 d 5 e 6 f 7 a
ZUNIONSTORE zset10 2 zset8 zset9
ZRANGE zset10 0 -1 WITHSCORES
ZUNIONSTORE zset11 2 zset8 zset9 AGGREGATE SUM
ZRANGE zset11 0 -1 WITHSCORES
ZUNIONSTORE zset12 2 zset8 zset9 AGGREGATE MIN
ZRANGE zset12 0 -1 WITHSCORES
ZUNIONSTORE zset13 2 zset8 zset9 AGGREGATE MAX
ZRANGE zset13 0 -1 WITHSCORES
ZUNIONSTORE zset14 2 zset8 zset9 WEIGHTS 2 2
ZRANGE zset14 0 -1 WITHSCORES