Redis数据类型

Redis

1.Redis数据结构介绍

  • Redis是一个key-value的数据库,key的数据类型是string类型,value的数据类型一般根据需求不同使用不同的数据类型。不过redis中的string类型与java中的String类型是不同的。
  • Redis的数据类型分为8种
    • 基本类型:string、Hash、List、Set、SortedSet
    • 特殊类型:GEO、BitMap、HyperLog
  • Redis的命令可以在官网( http://www.redis.cn/commands.html )中查询,其中已经将各个命令分门别类了。或者也可以在Redis中输入Help指令进行查询

2.Redis的数据结构之string

  • string是redis中最基本的数据类型,你可以理解成Mencached一模一样的类型,一个key对应一个value。string类型是二进制安全的,意思是redis的string类型可以包含任何数据,例如图片或者序列化的对象。string类型的最大存储值512MB。
  • 存储string的常用命令
  1. 赋值

    set key value

  2. 取值

    get key

  3. 删除

    del key

    del key1 key2 …

  4. 数值的递增与减

    • incr key //会对这个key对应的值加1,如果key不存在创建key,值为1,如果key的值不是数字型字报错
    • decr key //反之亦然
  5. 指定数值的增减量

    • incrby key num //与上面大同小异,增加的值从1改为num
    • decrby key num //反之亦然
  6. append追加字符串,如果没有定义,直接赋值

    append key string //在当前key的值后面拼接string,就算拼接值与被拼接值都是数值型也还是拼接

3.Redis的数据结构值哈希

  • 存储的value是一个hash结构,而hash结构就是一个String 可以和String value组成的map容器。Hash特别适合用户存储对象,Redis中每个Hash可以存储2^32-1键值对(4283867295)。
  • 存储Hash常用的命令
  1. 赋值

    • 存储单个字段

      hset key fieldname fieldvalue

    • 存储多个字段

      hset key fieldname1 fieldvalue1 fieldname2 fieldvalue2…

  2. 取值

    • 获取指定key的指定属性的值

      hget key fieldname

    • 获取指定key的多个属性的值

      hmget key fieldname1 fieldname2…

    • 获取指定key的所有属性值

      hgetall key

  3. 删除

    • 删除指定key的单个或多个属性

      hdel key fieldname1 fieldname2

  4. 增加数字

    • 给某个属性值为整数的值添加num

      hincrby key fieldname num

  5. 判断key是否存在

    • 判断某个key对应的属性是否存在,1表示存在,0则表示不存在

      hexists key fieldname

  6. 获取hash属性的个数

    • 获取hash的属性的个数

      hlen key

  7. 获取hash的所有属性

    • 获取hash的所有属性名

      hkeys key

    • 获取所有的属性的值

      hvals key

4.Redis的数据结构值list

  • Redis列表中的最简单的字符串类表,插入顺序排序,你可以添加一个元素到列表的头部或者尾部,同样的一个列表最多可以包含2^32-1个元素。
  • 存储list常用的命令
  1. 两端添加

    • 从左边开始添加

      lpush key value1 value2…

    • 从右边开始添加

      rpush key value1 value2…

    • 获取指定范围的集合元素

      Irange key 开始下标 结束下标(不知晓长度,结束下标可以-1代表,意思是取到最后一位)

    • 往list头部插入元素(只能插入单个元素)

      lpushx key value

    • 往list尾部插入元素(同上)

      rpushx key value

  2. 两端弹出

    • 从list头部弹出集合元素

      lpop key(会返回一个值便是弹出的头部值,在list列表中已经将这个值删除)

    • 从list尾部弹出几何元素

      rpop key(同上)

    • 查看list集合的元素的个数

      llen key

    • 从list集合的指定的方向删除指定个数的指定元素

      lrem key count value

      其中count为整数从左往右删count个数,反之亦然,value则为删除的值,如果count为0则表示删除所有

    • 修改指定下标上的值

      lset key index value(既然是下标则index从0开始算)

    • 在指定位置插入指定的元素

      linsert key before/after value1 value2

      before是在value1前面插入value2

      反之在后

    • 把某个集合的尾部元素弹出并插入到另外一个集合的头部

      rpoplpush key1 key2

      将key1尾部的元素弹出删除,然后添加到key2的头部

5.Redis数据结构值Set

  • set与list类型不同于java中的特性如出一辙,set不可出现重复元素,并且元素的顺序是无序的。set的使用场景就是在各种一些唯一的数据。
  • set集合常用的方法
  1. 添加set集合

    sadd key menber1 menber2 menber3 …

  2. 查看set集合的元素

    smembers key(查看对应key中的所有元素)

  3. 删除set集合中的元素

    srem key value1 value2 …(写几个就删除对应的几个)

  4. 判断set集合中某个元素是否存在,返回1表示存在,返回0表示不存在

    sismember key value

  5. 判断集合中是否包含某元素,返回1则是包含,返回0则是不包含

    sismember key value

  6. 计算多个集合的差集

    sdiff key1 key2(统计的是在key1中存在的,在key2中不存在的,也就是说以左为尊)

  7. 计算多个集合的交集

    sinter key1 key2(统计在两个集合中都存在的元素)

  8. 计算多个集合的并集

    sunion key1 key2(将两个集合的元素何在一起,然后去重)

  9. 计算集合的元素个数

    scard key

6.Redis的数据结构值sorted-set/ZSet

  • sorted-set与set的区别在于前者的成员在集合中的位置是有序的,他的适用场景是:需要对于数据进行排行的时候使用。
  • sorted-set常用指令
  1. 添加元素,为什么他的元素可以是有序的,因为他可以给值额外添加一个评分的值,然后通过这个值进行排序

    zadd key score1 value1 score2 value2…

    1.sorted-set集合的默认排序是按照评分的升序进行排序

    2.如果我们继续给集合添加元素,如果元素已经存在则覆盖,不存在则添加

  2. 查找元素

    zrange 开始下标 结束下标

    注意 -1表示最后一个,默认的是评分的升序排序

    因此查找所有的元素

    zrange -1 0

​ 如果想要把元素的评分也打印出来,则在后面添加withscores

​ zrange 开始下标 结束下标 withscores

  1. 删除元素

    zrem key value1 value2…

    与set中的删除无异,也是删除对应值,写几个删除几个

  2. 查看集合的元素个数

    zcard key

  3. 降序打印集合的元素

    zrevrange key 开始下标 结束位置 [withscores]

  4. 根据集体的评分范围来删除元素

    zremrangebyscore key min max

    这里的区间是前闭后闭区间,两边都包含

  5. 根据评分范围来查找元素

    zrangebyscore key min max [withscore] [limit 开始位置 页面大小]

    后面的limit与mysql中的用法无异

  6. 给指定的元素加分

    zincrby key score value

    value是你的元素名,score是你所需要加的分数

  7. 查找指定评分范围的元素个数

    zcount key min max

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Redis支持多种数据类型,包括string、hash、list、set和sorted set等。其string是最基本、最简单的数据类型,用于存储字符串。 Hash是用于存储键值对的数据结构,其的value只能存储字符串,不允许存储其他数据类型,也不存在嵌套现象。每个hash可以存储232 - 1个键值对,并可以灵活添加或删除对象属性。但需要注意的是,hash类型并不适合存储大量对象,也不应该将hash作为对象列表使用,因为遍历整体数据的效率可能会较低。 除了string和hash类型,Redis还支持list、set和sorted set等数据类型。List是一个有序的字符串列表,可以进行插入、删除和查找等操作。Set是一个无序的字符串集合,可以进行元素的添加、删除和查找操作,并且不允许重复元素的存在。Sorted Set是一个有序的字符串集合,每个元素都有一个对应的score,可以根据score进行排序和范围查找。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Redis 数据类型](https://blog.csdn.net/weixin_52851967/article/details/122670564)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值