Redis常用数据类型

    

      redis本身是一个Map,其中所有的数据都是采用键值对的形式存储,其中常用的数据类型有五种:string,hash,list,set,sorted_set

String

  • 数据类型:string中存储的是单个数据,通常是字符串,是最简单的数据存储类型,也是最常用的数据类型,如果字符串以整数的形式展示,可以进行对应的数字操作
  • 基本操作
  1. 添加/修改数据    set key value(单个数据) mset key1 value1 key2 value2 ...(多数据)append key value(追加信息,不存在则新建)
  2. 获取数据            get key(单个数据) mget key1 key2...(多数据)  
  3. 删除数据            del key
  4. 获取数据字符个数  strlen key
  5. 增加数值数据的值  incr key(加1) incrby key increment(增加指定整数值) incrbyfloat key increment (增加指定float值)
  6. 减少数据数值的值  decr key(减1)decrby key increment(减少指定整数值)
  • 是否多数据操作一定比但数据操作块:不一定,当一次操作数据过多时,数据传输需要时间较长,需视情况而定
  • 增加,减少操作值可为负数
  • 按数值进行操作时,若原始数据不能转换为数值,或超越了redis数值上限,将报错,数值范围为java中long型的范围
  • 扩展操作
  1. 设置数据具有指定生命周期    setex key seconds values(指定秒数)       psetex key  milliseconds values(指定毫秒数)

Hash

  • 数据类型:底层使用哈希表实现数据存储,一个存储空间保存多个键值对数据,典型应用为存储对象信息
  • 基本操作
  1. 添加/修改数据      hset key field value(单个数据)  hmset key field1 value1 field2 value2...(多个数据)    hsetnx key field value(如果不存在该字段,创建并执行hset操作,如果已存在,操作无效)
  2. 获取数据              hget key field(单个数据) hmget key field1 field2 ...(多数据)     hkeys key(获取所有字段名)   hvals key(获取所有字段值)               hgetall key(获取所有键值对)
  3. 删除数据              hdel key field
  4. 获取字段的数量   hlen key
  5. 判断是否存在指定字段 hexists key field
  6. 增加指定字段值   hincrby key field increment       hincrbyfloat key field increment

  • hash类型下的value只能存储字符串,不能嵌套存储
  • hgetall操作可以获取全部属性,如果内部field过多,遍历整体数据效率会很低,可能会称为数据访问的瓶颈

List

  • 数据类型:有序存储多个数据,底层使用双向链表存储结构实现
  • 基本操作 
  1. 添加/修改数据          lpush key value1(从左添加数据)   rpush key value1(从右添加数据)
  2. 获取数据                  lrange key start top(获取指定范围内数据) lindex key index(获取指定索引数据) llen key(获取数据数目)
  3. 获取并移除数据       lpop key(从左边取出数据)  rpop key(从右边取出数据)
  4. 规定时间内获取并移除数据      blpop key  timeout            brpop  key  timeout       brpoplplush source destination timeout(从列表中弹出数据并存入到另一个列表中,如无对应数据,会等待超时或发现对应数据)
  5. 移除指定个数的指定数据     lrem key count value
  • list具有索引的概念,通常以队列的形式或栈的形式操作数据
  • 获取全部数据的操作技术索引为-1
  • list可用于对数据进行分页操作

Set

  • 数据类型:与hash存储结构完全相同,进存储键值,不允许重复,存储结构机制高效,便于查询
  • 基本操作
  1. 添加数据             sadd key member
  2. 获取数据             smembers key(获取所有数据)   scard key(获取集合数据总数)   srandmember key  count(随机获取集合中指定数量的数据)      spop  key  count(随机获取数据并移除集合)
  3. 删除数据             srem key member
  4. 判断集合中是否包含指定数据       sismember key member
  5. 求两个集合的交,并,差集           sinter key1 key2(交集)  sunion key1 key2(并集)  sdiff key1 key2(差集)
  6. 求两个集合的交,并,差集并存储到指定集合中    sinterstore  destination key1 key2        sunionstore destination key1 key2     sdiffstore destination key1 key2
  7. 将指定数据从原始集合中移动到目标集合中     smove source destination member
  • set虽然与hash的存储结构相同,但是无法启用hash中存储值的空间

Sorted_set

  • 基本操作
  1. 添加数据       zadd key score1 member 1 [score2 member2 ]
  2. 获取全部数据      zrange key start stop  (获取从小到大排序的指定范围的值)                 zrevrange key start stop(获取从大到小排序的指定范围的值)
  3. 删除数据            zrem key member [member ...]
  4. 按条件获取数据       zrangebyscore key min max            zrevrangebyscore key max min
  5. 按条件删除数据       zremrangebyrank key start stop          zremrangebyscore key min max
  6. 获取集合数据总量     zcard key         zcount key min max
  7. 获取数据对应的索引     zrank key number                      zrevrank key number
  8. score值获取与修改       zscore key number (获取指定数据的score)         zincrby key increment member(修改指定数据的score)
  • score保存的数据可以是一个双精度的double值,可能会丢失精度
  • sorted_set还是基于set结构的,因此数据不能重复

 

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值