首页 > 数据库 >Redis 的数据类型及各数据类型的命令还有其应用场景

Redis 的数据类型及各数据类型的命令还有其应用场景

时间:2024-06-11 20:58:52浏览次数:24  
标签:set hash 数据类型 key1 Redis value 场景 key 集合

  • String类型(适用于大部分)
    • 含义
      • String类型包含多种类型的特殊类型,并且是二进制安全的.比如序列化的对象进行存储,比如一张图片进行二进制存储.,比如一个简单的       
    • 命令
      • setrange key index value -> 修改键对应的值,index表示开始的索引位置
      • ttl ->可以查询出当前的key还剩余多长时间过期
      • setex key timeout value -> 存入键值对,timeout表示失效时间,单位s
      • setnx key value -> 存入键值对,键存在时不存入
      • append key 'value' -> 原值后拼接新内容
      • mget k1 k2 ... -> 批量取出键值
      • mset k1 v1 k2 v2 ... -> 批量存入键值对
      • incrby key num -> 偏移值
    • 应用场景
      • 计数器:如:视频播放数系统就是使用redis作为视频播放数计数的基础组件
      • 共享session:如:用户刷新一次访问可能会需要重新登录,为避免这个问题可以用redis将用户session集中管理
  • hash类型(一般适用于对象类型)
    • hash ---> 转换成json格式
    • {

      key1:value1

      key2:value2 ------> "{key1:value1, key2:value2}"

      }

      JSON.toJsonString(map)

    •  含义
      • 是String类型的field和value的映射表.或者说是一个String集合.它特别适合存储对象,相比较而言,讲一个对象存储在Hash类型里要比存储在String类型里占用更少的内存空间,并方便存储整个对象
    • 命令
      • hset key hashkey hashvalue -> 存入一个hash对象
      • hget key hashkey -> 根据hash对象键取去值
      • hexists key hashkey -> 判断hash对象是含有某个键
      • hdel key hashkey -> 根据hashkey删除hash对象键值对
      • hincrby key hashkey 递增值 -> 递增hashkey对应的值
      • hlen key -> 获取hash对象键的数量
      • hkeys key -> 获取hash对象的所有键
      • hvals key -> 获取hash对象的所有值
      • hgetall key -> 获取hash对象的所有数据
      • hsetnx key value -> 存入键值对,键存在时不存入
    • 应用场景
      • 哈希结构相对于字符串序列化缓存信息更加直观,并且在更新操作上更加便捷。

        所以常常用于**用户信息**等管理

  • list类型(数据是多个且允许重复)
    • 含义
      • 类似Java中的queue,也可以当做List来用.

        List类型是一个链表结构的集合,其主要功能有push,pop,获取元素等.更详细的说,List类型是一个双端链表的结构,我们可以通过相关操作进行集合的头部或者尾部添加删除元素,list的设计非常简单精巧,即可以作为栈,又可以作为队列.满足绝大多数需求

    • 命令
      • rpush key value -> 往列表右边添加数据
      • lrange key start end -> 范围显示列表数据,全显示则设置0 -1
      • lpush key value -> 往列表左边添加数据
      • lpop key -> 弹出列表最左边的数据
      • rpop key -> 弹出列表最右边的数据
      • llen key -> 获取列表长度
      • linsert key before/after refVal newVal -> 参考值之前/后插入数据
      • lset key index value -> 根据索引修改数据
      • lrem key count value -> 在列表中按照个数删除数据
      • ltrim key start end -> 范围截取列表
      • lindex key index -> 根据索引取列表中数据
    • 应用场景
      • 如:用户收藏文章列表:xxxx_user_articles:uid [aid1, aid2, aid3.....]
  • set类型(数据是多个且不允许重复)
    • 含义
      • Set集合是string类型的无序集合,set是通过hashtable实现的,对集合我们可以取交集,并集,差集.
    • 命令
      • sadd key value -> 往set集合中添加元素
      • smembers key -> 列出set集合中的元素
      • srem key value -> 删除set集合中的元素
      • spop key count -> 随机弹出集合中的元素
      • sdiff key1 key2 -> 返回key1中特有元素(差集)
      • sdiffstore var key1 key2 -> 返回key1中特有元素存入另一个set集合
      • sinter key1 key2 -> 返回两个set集合的交集
      • sinterstore var key1 key2 -> 返回两个set集合的交集存入另一个set集合
      • sunion key1 key2 -> 返回两个set集合的并集
      • sunionstore var key1 key2 -> 返回两个set集合的并集存入另一个set集合
      • smove key1 key2 value -> 把key1中的某元素移入key2中
      • scard key -> 返回set集合中元素个数
      • sismember key value -> 判断集合是否包含某个值
      • srandmember key count -> 随机获取set集合中元素
    • 应用场景
      • 去重
      • 抽奖
  • zset(sorted set 要排序选用)
    • 含义
      • 类似于集合,但是每个元素都有一个分数(score)与之关联
    • 命令
      • zadd key score column -> 存入分数和名称
      • zincrby key score column -> 偏移名称对应的分数
      • zrange key start end -> 按照分数升序输出名称
      • zrevrange key start end -> 按照分数降序输出名称
      • zrazrank key name -> 升序返回排名
      • zrevrank key name -> 降序返回排名
      • zcard key -> 返回元素个数
      • zrangebyscore key min max [withscores] -> 按照分数范围升序输出名称
      • zrevrangebyscore key max min [withscores] -> 按照分数范围降序输出名称
      • zrem key name -> 删除名称和分数
      • zremrangebyscore key min max [withscores] -> 根据分数范围删除元素
      • zremrangebyrank key start end -> 根据排名删除元素
      • zcount key min max -> 按照分数范围统计个数
    • 应用场景
      • 排行榜:有序集合经典使用场景。例如视频网站需要对用户上传的视频做排行榜,榜单维护可能是多方面:按照时间、按照播放量、按照获得的赞数等

标签:set,hash,数据类型,key1,Redis,value,场景,key,集合
From: https://blog.csdn.net/qq_43418327/article/details/139606720

相关文章

  • 基本数据类型 String,null 和 undefined,运算符,流程控制,JavaScript之数组,数组常用
    Ⅰ基本数据类型String【一】String类型String类型就是字符串类型【二】定义变量【1】常规变量var变量名="变量值";//一般用这种var变量名='变量值';不支持三引号【2】可以先声明不赋值先用varb;再对变量b赋值varb='6';【三】字符串的格式化输出语法......
  • CH02_数据类型
    CH02_数据类型数据类型整型描述:整型变量表示的是整型类型的数据,C++中能够表示整型的类型有以下几种方式,区别在于所占内存空间不同。数据类型占用空间取值范围short(短整型)2字节-2^15~2^15-1int(整型)4字节-2^31~2^31-1long(长整型)windows为4字节,Li......
  • Redis
            之前我们学习得都是SQL类型的,从这里开始我们开始设置对应的NoSQL类型的        国内的一些企业,并不是都是仅仅只使用关系型数据库,也就是SQL就可以进行相关操作的,还需要其他的类型,也就是NoSQL类型的数据库NOSQL解决方案:Redis:第一个......
  • DISM(Deployment Image Servicing and Management)和wimlib虽然都可以用来处理Windows映
    DISM(DeploymentImageServicingandManagement)和wimlib都是用于Windows系统的映像管理工具,它们可以用来处理Windows映像文件(.wim文件),但在功能和使用上有一些不同点。下面是它们的比较:DISM(DeploymentImageServicingandManagement)内置工具:DISM是Windows操作系统......
  • Redis实现分布式锁有哪些方案?
    Redis实现分布式锁有哪些方案?在这里分享六种Redis分布式锁的正确使用方式,由易到难。本文已收录到Java面试网站方案一:SETNX+EXPIRE方案二:SETNX+value值(系统时间+过期时间)方案三:使用Lua脚本(包含SETNX+EXPIRE两条指令)方案四::ET的扩展命令(SETEXPXNX)方案五:开源框架~Redi......
  • Redis之主从同步
    概念主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为主节点(master/leader),后者称为从节点(slave/follower);数据的复制是单向的,只能由主节点到从节点。Master以写为主,Slave以读为主。默认情况下,每台Redis服务器都是主节点;且一个主节点可以有多个......
  • Redis:原理、概念、用法与实例解析
    Redis:原理、概念、用法与实例解析在当今风起云涌的技术领域中,Redis犹如一颗璀璨的明星,闪耀着独特的光芒。它作为一种备受瞩目的数据存储和缓存解决方案,以其卓越的性能、丰富多样的功能以及简单易用的特性,成为了众多开发者的心头好。在这篇博客中,我们将全方位、深层次地探......
  • C语言中的数据类型及其转换
    目录计算机中的数据类型整型数据之间的转换相同字长之间的转换小字长转大字长大字长转小字长int、float、double之间的转换float->doubledouble->floatfloat/double->intint->floatint->double计算机中的数据类型计算机中的数据以二进制的形式存储在寄存器或存储器中。机器怎......
  • Redis之发布订阅
    发布订阅Redis发布订阅(pub/sub)是一种消息通信模式,发送者(pub)发送消息,订阅者(sub)接收消息。Redis客户端可以订阅任意数量的频道。消息发送者&消息接收者&频道可以想象这么一个场景。我们抖音、微博关注了哪个博主,当他发布一条文章时,系统就会给我们推送他发布的消息内......
  • 百度面试:如何用Redis实现限流?
    高并发系统有三大特征:限流、缓存和熔断,所以限流已经成为当下系统开发中必备的功能了。那么,什么是限流?如何实现限流?使用Redis能不能实现限流?接下来我们一起来看。1.什么是限流?限流是指在各种应用场景中,通过技术和策略手段对数据流量、请求频率或资源消耗进行有计划的限制,以避......