Redis最为常用的五种数据类型有:String、Hash、List、Set、Sorted Set。
一、String
String是Redis最为常用的一种数据类型,String的数据结构为key/value类型,String可以包含任何数据。
常用命令: set,get,decr,incr,mget 等。
新增 set 为键设置新值,并覆盖原有值 mset 批量设置键 getset 设置值、取值同时进行 setex 设置指定Key的过期时间,在存活时间可以获取value setnx 若该键不存在,则为键设置新值 删除 del 删除已有键 修改 incr 值增加1,若该Key不存在,则创建key,初始值设为0,增加后结果为1 append 若该键并不存在,返回当前Value的长度;该键已经存在,返回追加后Value的长度 decrby 值减少指定数值 查询 get 获取Key对应的Value mget 批量获取键 exists 判断该键是否存在,存在返回 1,否则返回0 strlen 获取指定Key的字符长度 ttl 查看一下指定Key的剩余存活时间(秒数)
二、Hash
Hash类型可以看成是一个key/value都是String的Map容器。
常用命令: hget,hset,hgetall 等。
新增 hset 若不存在,创建该键及与其关联的Hashes,若存在,则无效 hmset 一次性设置多个字段 删除 hdel 删除指定键中指定的字段 del 删除键 修改 hincrby 给指定字段的值加1 查询 hget 获取指定键值中指定字段的值 hlen 获取指定键的字段数量 hexists 判断指定的键中是否存在某字段 hmget 批量获取字段 hgetall 返回指定键的所有字段及其值 hkeys 获取指定键中所有字段的名字 hvals 获取指定键中所有字段的值
三、List
List用于存储一个有序的字符串列表,常用的操作是向队列两端添加元素或者获得列表的某一片段。
常用命令:lpush,rpush,lpop,rpop,lrange等。
新增 lpush 向列表左端添加元素。例:lpush key value linsert 向列表中插入元素。例:linsert key BEFORE|AFTER privot value,从左边开始寻找值为privot的第一个元素,然后根据第二个参数是BEFORE还是AFTER决定在该元素的前面还是后面插入value rpush 向列表右端添加元素。例:rpush key value rpoplpush 将一个列表的尾部元素弹出,再插入到另一个列表的头部(原子性的操作)。例:rpoplpush source destination 删除 del 删除已有键。例:del key lrem 删除列表中指定值。例:lrem key count value 删除列表中前count个值为value的元素,当count>0时从左边开始数,count<0时从右边开始数,count=0时会删除所有值为value的元素 ltrim 保留列表指定范围,其余全部删除。例:ltrim key begin end 包含begint end 修改 lset 设置指定索引的值。例:lset key index value 查询 lrange 获取列表中指定区域的元素。例:lrange key begin end 索引从0开始,-1表示最后一个元素。 lpop 从列表左端弹出元素。例:lpop key rpop 从列表右端弹出元素。例:rpop key lindex 获取指定索引的元素值。例:lindex key index llen 获取列表中元素个数。例:llen key
四、Set
Set可以理解为一组无序的字符集合,Set中相同的元素是不会重复出现的,相同的元素只保留一个。
常用命令:sadd,spop,smembers,sunion等。
新增 sadd 添加元素。例:sadd key value1 [value2 value3 ...] 删除 spop 从集合中随机弹出一个元素。例:spop key srem 删除元素,例:srem key value1 [value2 value3 ...] 修改 smove 将元素移到另一个集合。例:smove key1 key2 value 查询 sismember 判断元素是否在集合中,返回值为 1 表示存在。例:sismember key value smembers 获得集合中所有元素。例:smembers key scard 获取集合中元素的数量。例: scard key sdiff 对集合做差集运算。例:sdiff key1 key2 [key3 ...],先计算key1和key2的差集,然后再用结果与key3做差集 sinter 对集合做交集运算。例:sinter key1 key2 [key3 ...] sunion 对集合做并集运算。例:sunion key1 key2 [key3 ...] sdiffstore 对集合做差集运算并将结果存储。例:sdiffstore destination key1 key2 [key3 ...] sinterstore 对集合做交集运算并将结果存储。例:sinterstore destination key1 key2 [key3 ...] sunionstore 对集合做并集运算并将结果存储。例:sunionstore destination key1 key2 [key3 ...] srandmember 随机获取集合中的元素。
五、Sorted Set(有序集合)
有序集合是在集合的基础上为每一个元素关联一个分数,Redis通过分数为集合中的成员进行排序。
常用命令:zadd,zrange,zrem,zcard等。
新增 zadd 添加元素.例:zadd key score1 value1 [score2 value2 score3 value3 ...] 删除 zrem 删除一个或多个成员变量,返回删除的数量。例:zrem key value1 [value2 ...] 修改 zincrby 增加某个成员的分数,并返回该成员更新后的分数。例:zincrby key increment value 查询 zrange 获取排名在指定范围的成员,WITHSCORES选项表示不否返回成员分数。例:zrange key start stop [WITHSCORE] zrank 获取正序排序的成员在集合中的位置索引值,0表示第一个位置。例:zrank key value zcard 获取集合中元素的数量。例:zcard key zcount 获取指定分数范围内的元素个数。例:zcount key min max zscore 获取元素的分数。例:zscore key value zrangebyscore 获取指定分数范围内的元素。例: zrangebyscore key min max