• redis:常用的数据类型


    Hash

    本质上就是一个HashMap,也就是嵌套了一个HashMap,相当于

    Map> hash = new HashMap<>();

    适合存储类这样的数据,由于值本身又是一个Map,因此可以在此Map中放入类的各种属性和值,以实现一个Hash数据类型存储一个类的数据

    添加一个hash类型的数据

    hset [<字段> <值>]...

     hset fruit name apple size big color red

    获取数据

    hget <字段>
    hgetall -- 如果想要一次性获取所有的字段和值

    hvals  -- 获取所有的值

    判断某个字段是否存在

    hexists <字段>

    删除字段

    hdel

    统计键值对的数量

    hlen

    注意:Hash中只能存放字符串值,不允许出现嵌套的的情况

    List

    它就是一个列表,在列表中存放一系列的字符串,它支持随机访问,支持双端操作,就像Java中的LinkedList

    直接向一个已存在或是不存在的List中添加数据,如果不存在,会自动创建

    -- 向列表头部添加元素
    lpush ...
    -- 向列表尾部添加元素
    rpush ...
    -- 在指定元素前面/后面插入元素
    linsert before/after <指定元素>

    获取元素:下标可以使用负数来表示从后到前数的数字,像python

    -- 根据下标获取元素
    lindex <下标>
    -- 获取并移除头部元素
    lpop
    -- 获取并移除尾部元素
    rpop
    -- 获取指定范围内的
    lrange start stop

    -- 获取列表a中的全部元素
    lrange a 0 -1

    支持阻塞操作,类似于生产者和消费者,比如想要等待列表中有了数据后再进行pop操作

    -- 如果列表中没有元素,那么就等待,如果指定时间(秒)内被添加了数据,那么就执行pop操作,如果超时就作废,支持同时等待多个列表,只要其中一个列表有元素了,那么就能执行
    blpop ... timeout

    Set和SortedSet

    它不允许出现重复元素,不支持随机访问,但是能够利用Hash表提供极高的查找效率

    向Set中添加一个或多个值:

    sadd  ...

    查看Set集合中有多少个值:

    scard 

    判断集合中是否包含:

    -- 是否包含指定值
    sismember  
    -- 列出所有值
    smembers 

    集合之间的运算:

    -- 集合之间的差集
    sdiff  
    -- 集合之间的交集
    sinter  
    -- 求并集
    sunion  
    -- 将集合之间的差集存到目标集合中
    sdiffstore 目标  
    -- 同上
    sinterstore 目标  
    -- 同上
    sunionstore 目标  

    移动指定值到另一个集合中:

    smove  目标 value 

    移除操作:

    -- 随机移除一个幸运儿
    spop 
    -- 移除指定
    srem  ...

    那么如果要求Set集合中的数据按照指定的顺序进行排列,这时就可以使用SortedSet,它支持为每个值设定一个分数,分数的大小决定了值的位置

    可以添加一个带分数的值:

    zadd  [ ]...

    同样的:

    -- 查询有多少个值
    zcard 
    -- 移除
    zrem  ...
    -- 获取区间内的所有
    zrange  start stop

    由于所有的值都有一个分数,我们也可以根据分数段来获取:

    -- 通过分数段查看
    zrangebyscore  start stop [withscores] [limit]
    -- 统计分数段内的数量
    zcount   start stop
    -- 根据分数获取指定值的排名
    zrank  

    redis基本操作命令 - 简书

  • 相关阅读:
    读书笔记:《高频交易员》
    Windows下Oracle的安装与卸载
    java面试题整理《redis篇》六
    平衡优化算法在特征选择中的应用(Matlab代码实现)
    写给开发人员的实用密码学(三)—— MAC 与密钥派生函数 KDF
    Log4j和ROS_INFO把中文显示为乱码问号的问题解决方案
    私有部署助力疫情防控管理系统,为数据安全保驾护航
    查看PG有多少拓展
    java基于ssm+vue高校人事管理系统
    Spring之IoC
  • 原文地址:https://blog.csdn.net/weixin_51992178/article/details/128045471