Redis数据类型和操作命令

阅读更多

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

 

你可能感兴趣的:(NoSQL,Redis)