1、基础类型简介:
redis支持5中数据类型:List, hash,set, sorted set, string
类型 | 特性 | 使用实例 | 常见命令 |
String |
二进制安全的类型; 可以包含任何数据,如jpg图片或者序列化对象; String类型是redis最基本的数据类型, 最大可以存储512M |
SET key value 设置值 GET key 获取值 |
1)SET key value 设置指定key值,如果key已存在,会替换原始值 2)GET key 获取指定key的值 3)GETRANGE key start end 获取key中字符串的子串(下标从0开始) 4)GETSET key value 将key值修改为value,并返回原来的值 5)MGET key1[,key2...]获取一个或多个key值,如果不存在key或类型不对,该key对应值返回nil 6)SETEX key seconds value :将值value关联到key上,并将key的过期时间设置为seconds(将会替换已存在的旧值) 7)SETNX key value:只有在key值不存在时设置key值 8)SETRANGE key offset value:用value参数替换给定key的指定偏移位置的字符串值(一个汉字三个字节) 9)STRLEN key:返回给定key所存储的字符串的长度 10)MSET key value [key value]:同时设置一个或多个key-value对 11)MSETNX key value [key value]:同时设置一个或多个key-value,且仅当key不存在时才能设置成功 12)INCR key:将key中存储的数值加1,返回加1后的值 13)INCRBY key increment:将key存储的值加上给定的增量值 14)INCRBYFLOAT key increment:将key存储的值加上给定的浮点增量值 15)DECY key:将key中存储的数字值减一 16)DECYBY key decrement:key所存储的值减去所给的减量值 17)APPEND key value:如果key存在,追加value,如果key不存在,创建key-value |
Hash |
Hash是一个String类型的field和value的映射表; Hash特别于存储对象 每个hash可以存储232 -1个键值对 |
HMSET key field1 value1 field2 value2 设置了两个键值对 HGET key field1 获取field1的值 HGET key field2 获取field2的值 |
1)HDEL key field1 [field2...]:删除一个或多个hash表字段 2)HEXISTS key field:查看hash表key中,指定的field字段是否存在 3)HGET key field:获取hash表中指定字段的值 4)HGETALL key:获取hash表中指定key的所有字段和值 4)HKEYS key:获取hash表中指定key的所有字段 6)HVALS key:获取hash表中指定key的所有字段的value 7)HMGET key field1 [field2..]:获取hash表中所有给定字段的值 8)HLEN key:获取hash表中字段的数量 9)HINCRBY key field increment:给指定的field的整数值加上增量 10)HINCRBYFLOAT key field increment:给指定field的浮点数加上增量值 11)HSET key field value:将hash表key中指定字段field值设置为value 12)HMSET key field1 value1 [field2 value2...]:同时将多个field-value(域-值)对设置到hash表key中 13)HSETNX key field value:只有在字段field不存在时,设置hash表字段的值 14)HSCAN key cursor [MATCH pattern] [COUNT count]:迭代hash表中的键值对 |
List |
是简单的字符串类别,按照插入的顺序排序 可以添加一个元素到列表的左边或者右边 |
lpush key value 左边添加数据 rpush key value 右边添加数据 lrange key start end 获取指定范围内个数的元素 |
1)LPUSH key value1 [value2...]:左边添加一个或多个值 2)RPUSH key value1 [value2...]:右边添加一个或多个值 3)RPUSHX/LPUSHX key value:为已经存在的列表添加值 4)LINSERT key BEFORE/AFTER value newvalue:在列表元素value的前或者后插入新的元素newvalue 4)LLEN key:获取列表长度 6)LPOP/RPOP key:移出并获取列表的第一个/最后一个元素 7)LINDEX key index:通过索引获取列表中的元素 8)LRANGE key start end:获取指定范围内的元素 9)LSET key index value:通过索引设置列表元素的值 10)LTRIM key start end:让列表只保留指定区域的元素,删除其他元素 11)BLPOP key1 [key2..] timeout:移出并获取列表的第一个元素,如果列表没有元素会阻塞列表直到等待超时或者发现可弹出元素为止 12)BRPOP key1 [key2..] timeout:移出并获取列表的最后一个元素,如果列表没有元素会阻塞列表知道等待超时或者发现可弹出元素为止 13)BRPOPLPUSH source destination timeout:从列表source中弹出一个值并将它插入到destination列表的头并返回 14)RPOPLPUSH source destination:从列表source中弹出最后一个值,并将该元素添加到另一个列表destination中并返回。 |
Set |
是String类型的无序集合 是不可重复的 集合是通过hash表实现的,增删查难度都是O(1) |
sadd key value 添加一个string类型元素value到key对应的set集合中, 成功返回1,如果元素已经在集合中,返回0 smembers key:获取集合中所有元素 |
1)sadd key member1 [member2]:向集合中添加一个或多个成员 2)scard key:获取集合的成员个数 3)sdiff key [key1..]:获取集合差集 4)sdiffstore destination key [key1...]:获取集合差集并保存在新的集合destination中,destination中原因的成员会被清空 4)sinter key [key1...]:获取集合的交集 6)sinterstore destination key [key1...]:获取集合的交集并保存在新的集合中,且新集合中的原有元素会被清除 7)sunion key [key1..]:获取集合的并集 8)sunionstore destination key [key1...]:获取集合的并集并保存在新的集合中,且新集合中的原有元素会被清空 9)sismember key member:判断member元素是否是key集合中的成员 10)smembers key:返回集合中的所有成员 11)spop key:从集中随机移除一个元素并返回 12)srandmember key [count]:从集合key中随机返回一个或count个成员 13)srem key member1 [member2]:从集合key中移除指定成员 14)smove source destination member:将member元素从source集合中移到destination集合中 15)sscan key cursor [match pattern][count count]:迭代集合中的元素 scan key 0 match h* count 1:从集合中遍历出1个以h开头的元素 |
zset(Sorted Set) |
和Set相同点: String类型的元素集合 不允许重复成员 和Set不同点: 有序集合; 每个元素都会关联一个double类型的分数, 集合中的成员通过分数从小到大排序; zset成员是唯一的,但是score是可以重复的。 可用于存考试姓名成绩等 |
zadd key score value 添加元素到集合,元素在集合中存在则更新对应的score ZRANGEBYSCORE key min max 获取score分数在min 到max 之间的score |
1)zadd key score1 member1 [score2 member2..]:添加成员 2)zcard key:返回成员个数 3)zcount key min max:返回指定分数区间的成员个数 4)zlexcount key min max:返回指定区间内的成员数量zlexcount key [mem1 [mem2; zlexcount key - + 5)zrange key start stop [withscores]:通过索引区间返回指定区间的成员 6)zrangebylex key min max [limit offset count]:通过字典区间返回有序集合的成员 7)zrangebyscore key min max [withscores][limit]:通过分数返回有序集合指定分数区间的成员 8)zincrby key increment member:给指定成员member加上增量increment 9)zrank key member:返回有序集合中member成员的索引 10)zrem key member [member1]:移除指定元素 11)zremrangebylex key min max:移除指定区间的所有成员 12)zremrangebyrank key start stop:移除有序集合中给定的排名区间的所有成员 13)zremrangebyscore key min max:移除有序集合中给定的分数区间的所有成员 14)zscore key member:返回有序集合中,成员的分数值 15)zrevrange key start stop[withscores]:返回指定索引区间的成员,分数从高到低 16)zrevrangebyscore key max min[withscores]:返回指定分数范围内的成员,分数从高到低排序 17)zrevrank key member:返回有序集合中指定成员的排名,有序集合成员按分数值递减排序 18)zinterstore destination numkeys key[key...]:给定个数的集合取交集并将交集存入新的有序集合destination中 19)zunionstore destination numkeys key[key...]:给定数量的集合取并集并将并集存到新的有序集合destination中 20)zscan key cursor[match pattern][count count]:迭代有序集合 |