Redis的数据类型
expire(为给定 key 设置生存时间) 语法:expire key secondsString 字符串类型 一个键最多存储512M
1> SET:设置key对应值为value 语法: SET key value SET str1 'xdl' 2>GET:根据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原来的字符串的长度比偏移量小,就会以零字节(\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中存储的数字加1 语法: INCR key SET str14 1 INCR str14 INCR str15 注意:key如果不存在,则会先初始化为0,在进行INCR操作 14>INCRBY:将key中存储的数字加上指定增量 语法: INCRBY key INCREMENT SET str16 10 INCRBY str16 5 INCRBY str16 1.5 15>INCRBYFLOAT:将key中存储的数字加上指定浮点数 语法; INCRBYFLOAT key increment SET str17 1 INCRBYFLOAT str17 1.5 16>DECR:将key中存储的数字减1 语法: DECR key SET str18 1 DECR str18 17>DECRBY:将key中存储的数值减指定值 语法: 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 list6SET集合类型:无序集合
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 为正数,而且小于集合中的元素,返回一个随机元素的集合数组, count 数大于集合中的个数的时候,返回整个集合 count 为负数,返回一个数组,数组中的成员可能出现重复,数组的长度是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:返回集合中元素个数 语法: 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 eHash类型
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的数量 语法 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 h2zset(sorted set)有序集合
1》ZADD:将元素及其分数添加到集合中 语法: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:获得指定元素的分数 语法:ZSCORE key member ZSCORE zset xdl ZADD zset 12.3 test5 3》ZRANGE:按照元素分数从小到大的顺序返回指定索引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 注意:当两个元素的分数相同的时候,Redis在排序按照字典的顺序(0<9<A<Z<a<z),如果使用的是UTF-8的编码方式的中文同样按照字典顺序排列 4》ZREVRANGE:和ZRANGE相反,按照分数从大到小的顺序 语法:ZREVRANGE key start stop [WITHSCORES] ZREVRANGE zset 0 -1 WITHSCORES 5》ZRANGEBYSCORE:获得指定分数范围内的元素,按照分数从小到大的顺序,返回的是分数在指定的min到max的元素 语法:ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]注意:通过(代表不包端点
6》ZREVRANGEBYSCORE:获得指定分数范围内的元素,按照元素的分数从大到小的顺序返回min和max之间的元素 语法:ZREVRANGEBYSCORE key max min [WITHSCORES] [LIMIT offset count] ZREVRANGEBYSCORE zset 90 80 WITHSCORES 7》ZINCRBY:操作某个元素的分数,返回操作之后的分数 语法:ZINCRBY key increment member ZINCRBY zset 5 test16 ZINCRBY zset -15 test16 8》ZCARD:获得集合中元素的数量 语法:ZCARD key ZCARD zset 9》ZCONUT:获得指定分数内的元素的数量 语法:ZCOUNT key min max ZCOUNT zset 80 90 COUNT zset (80 (90 10》ZREM:删除一个或者多个元素,返回删除元素的个数 语法:ZREM key member ... ZREM zset test16 11》ZREMRANGEBYRANK:按照排名范围删除元素,按照分数从小到大的顺序删除所指定的排名范围内的所有元素 语法: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:按照分数范围删除元素 语法: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:获得指定元素的排名,根据分数从小到大的顺序 语法:ZRANK key member ZRANK zset xdl ZRANGE zset 0 -1 WITHSCORES 14》ZREVRANK:获得指定元素的排名,根据分数从大到小的顺序 语法: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