• 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基本操作命令 - 简书

  • 相关阅读:
    电脑视频转换成mp4格式,视频格式转换器转换
    Pytorch中tensor的数据类型显示和转换方法
    WIN10 NPM的安装
    【Cisco Packet Tracer】交换机划分Vlan实验
    MySQL update 是锁行还是锁表?
    【云原生】kubernetes中Service深度学习
    RobotFramework框架+Selenium实现UI自动化测试(十六)
    城市内涝监测预警系统:有效降低内涝风险,保障城市安全
    一次c++监听Linux文件目录的实践
    峰会•沙龙•招聘 | 记零数科技多线并进的一天
  • 原文地址:https://blog.csdn.net/weixin_51992178/article/details/128045471