redis数据类型

字符串

字符串是redis中最基本的数据类型,
可存储的数据类型:

  • 二进制数据
  • JSON化对象
  • 图片

允许存储的最大容量:512MB

指令

设置值

set key value [EX seconds] [PX milliseconds] [NX|XX]
参数名 含义
EX seconds 设置键key的过期时间,单位时秒
PX milliseconds 设置键key的过期时间,单位时毫秒
NX 只在key不存在时,才对key进行设置操作
XX 只有键key存在的时候才会设置key的值

获取值

GET key (不存在时返回空)

递增数字

INCR key (如果不存在,会创建一个为0的值,执行一次+1,原子性操作)
INCRBY key increment (incr bar 3  增加三,不加则+1)
INCRBYFLOAT key increment(增加浮点数)

减少数字

DECR key (同INCR,操作为减)
DECRBY key increment

向尾部追加值

APPEND key value (返回字符串长度)

获取字符串长度

STRLEN key (不存在返回0,中文一个字长度为2)

批量设置值MSET

 MSET key value [key value ...]

二进制操作

GITBIT key offset
SETBIT key offset value
BITCOUNT key [statrt] [end]
BITOP operation destkey key [key ...]

散列

散列类型的键值是一种字典结构,存储了字段值 key和value,字段值只能是字符串
一个散列类型包含最多2^31-1个字段

赋值取值

HSET key field value (执行插入HSET返回1,执行更新返回0)
HGET key field 
HMSET key field value [field value...]
HMGET key field [field ...]
HGETALL key
HKEYS key
HVALS key

判断值是否存在

 HEXISTS key field

当字段不存在时才赋值

HEXISTS key field

增加数字

 HINCRBY key field increment

删除字段

HDEL key field [field ...]

获取字段数量

HLEN key

列表类型

列表类型内部使用双向链表,存储有序的字符串列表,一个列表类型最多容纳2^32-1个类型

添加元素

LPUSH key value [value ...] (左端添加)
RPUSH key value [value ...] (右端添加)

弹出元素

 LPOP key
 RPOP key

获取列表中元素个数

LLEN key

获得列表片段

LRANGE key start stop

删除列表中指定的值

LREM key count value

获得指定索引的元素值

LINDEX key index

设置指定索引的元素值

LSET key index value

保留start - stop范围之间的值

LTRIM key start stop

向列表中插入元素

LINSERT key BEFORE|AFTER pivot value

将元素从一个列表移动到另一个

RPOPLPUSH source destination(source列表执行RPOP弹出元素,再执行LPUSH将弹出元素追加到destination左边,原子操作)

集合

在集合中每个元素都不重复,无序,内部使用hast table,一个集合类型(set)键可以存储最多2^32-1个字符串

增加元素

SADD key member [member ...]

删除元素

SREM key member [member ...]

获取元素

SMEMBERS key (获取所有元素)

判断集合中是否存在元素

SISMEMBER key member (存在返回1,不存在返回0)

集合间运算

SDIFF key [key ...] (求差集)
SINTER key [key ...] (求交集)
SUNION key [key ...] (并集)

获得集合中元素个数

SCARD key

集合运算并且存储结果

SDIFFSTORE destination key [key ...]
SINTERSTORE destination key [key ...]
SUNIONSTORE destination key [key ...]

随机获得集合中的元素

SRANDMEMBER key [count]

从集合中弹出元素

SPOP key [count]

有序集合

有序集合使用散列表和跳跃表实现,

增加元素

 ZADD key [NX|XX] [CH] [INCR] score member [score member ...]

获得元素分数

ZSCORE key member

获得排名范围内的元素

ZRANGE key start stop [WITHSCORES]
ZREVRANGE key start stop [WITHSCORES]

获得分数范围内的元素

 ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]

增加某个元素的分数

 ZINCRBY key increment member

获得集合中元素的数量

ZCARD key

获得指定分数范围内的元素个数

ZCOUNT key min max

删除一个或多个元素

ZREM key member [member ...]

按照排名范围删除元素

ZREMRANGEBYRANK key start stop

按照分数范围删除元素

ZREMRANGEBYSCORE key min max

获得元素排名

ZRANK key member
ZREVRANGE key start stop [WITHSCORES]

计算交集

 ZINTERSTORE destination numkeys key [key ...] [WEIGHTS weight] [AGGREGATE SUM|MIN|MAX

你可能感兴趣的:(redis数据类型)