• redis的数据类型


    fb5acd3529164b31b2b1088de697413c.jpgredis 数据类型

     

    redis的五种数据类型是:1、string(字符串);2、hash(哈希);3、list(列表);4、set(集合);5、sort set (有序集合)。其中,string(字符串)是redis中最基本的数据类型,一个key对应一个value,string 可以包含任何数据

     

    字符串string

    字符串是所有编程语言中最常见和最常用的数据类型,而且也是redis最基本的数据类型之一,而且redis中所有key的类型都是字符串,它是一个由字节组成的序列,在Rediss中是二进制安全的。这意味着该类型可以接受任何格式数据,如JPEG图像数据和Json对象说明信息。它是标准的key-value,通常用于存储字符串、整数和浮点。Value可容纳高达512MB的数据

     

    添加一个key

    image

     

    //设置一个key value

    set name liwenchao

     

    //设置一个3秒的key,value, 3秒后查询就为nil

    set name2 lili ex 3

    获取一个key的内容

    //可以重复多次定义一个key

    set name liwenchao

    //如上面演示内容

    get name

    删除一个key

    image

     

    //删除name=liwenchao这个key

    del name

    批量设置多个key,value

    image

     

    //mset key1 value1 key2 value2

    mset name1 liwenchao name2 gaolili

    批量根据key获取多个value

    image

     

    //mget key1 key2

    mget name1 name2

    追加数据

    image

     

    //append key1 appendvalue

    append name1 app

    数值递增

    image

     

    //设置一个key,value为int的值

    set num 10

    //让num的value自动+1

    incr num

    数值递减

    image

     

    //让num的value自动-1

    decr num

    获取字符串key的长度

    image

     

    //获取key为name1的value的长度

    strlen name1

    判断key是否存在

    image

     

    //有会返回1,没有会返回0

    exists name1

    查看key的过期时间

    image

     

    //ttl 查看key的剩余生存时间

    // -1为永不过期,

    // -2没有这个key

    // num key的剩余有效时间

     

    重新设置key的过期时间

    image

     

    expire name3 120

    取消key的过期时间变为永久

    image

     

    persist name3

    列表list

    列表是一个双向可读可写的管道,其头部是左侧,尾部是右侧,一个列表可以最多包含2^32-1个元素,即4294967295个元素

     

    生成列表并插入数据

    image

     

    //创建list1的列表并插入value1,value2,value3,value3在列表的最左侧

    lpush list1 value1 value2 value3

    获取列表长度

    llen list

    向列表追加数据

    //从左边追加

    lpush list1 name1

    //从右边追加

    rpush list1 name2 

    获取列表指定范围数据

    image

     

    //name4在最左边,序列号为0 ,name3序列号为1

    lrange list2 1 2

     

    //如果只有4个元素。0-99可以打印所有的

    lrange list2 0 99

    移除左右一个元素

    image

     

    //从列表右边删除第一个

    rpop list2

    //从列表左边删除第一个

    lpop list2

    集合set

    set是string类型的无序集合,集合中的成员是唯一的,这就意味着集合中不能出现重复的数据,可以在两个不同的集合中对数据进行比对并取值

     

    生成集合key

    image

     

    //生成无序集合set1

    sadd set1 v2 v5

    追加数据

    image

     

    //可以看到加入相同数据时,返回为0,表示没变化

    sadd set1 v2

    查看集合所有数据

    image

     

    //获取无序集合set1的所有数据

    smembers set1

    获取集合的差集,交集,并集

    //差集,set1有而set2没有的

    sdiff set1 set2

     

    //交集,set1有,set2也有的

    sinter set1 set2

     

    //并集,set1和set2元素的集合并去重

    sunion set1 set2 

    有序集合

    redis有序集合和集合一样,也是string类型元素的集合,且不允许重复的成员,不同的是每个元素都会关联一个double双精度浮点数类型的分数,redis正是通过该分数来为集合中的成员进行从小到大的排序,有序集合成员是唯一的,但分数却可以重复,集合是通过hash表实现的,所以添加,删除,查找的复杂度是O(1),集合中最大的成员数是2^32-1,每个集合可以存储40多亿成员

     

    生成有序集合

    //生成有序集合zset1 

    zadd zset1 1 v1

     

    //获取类型

    type zset1

     

    //一次添加多个元素

    zadd zset2 1 v1 2 v2 3 v3

    集合排行

    image

     

    //显示所有key,value

    zrevrange zset2 0 -1 withscores

     

    //显示集合zset2内所有的key

    zrange zset2 0 -1

    获取集合长度

    zcard zset1

    基于索引返回数值

    //id号从1到3的

    zrange zset1 1 3

    返回某个数值的索引

    zrank zset2 v2

    哈希hash

    hash是一个string类型的feild和value的映射表,hash特别是和用于存储对象,redis中每个hash可以存储40多亿键值对

     

    生成hash key

    //设置一个键值对,我这里设置两个的时候报错了,按理说不应该报错的,待观察

    hset hash1 name liwenchao

     

    type hash1

    获取hash key字段值

    //获取key为name的键值对的值

    hget hash1 name

    删除一个hash key的字段

    hdel hash1 name

    获取所有hash表中的key

    hkeys hash1

    获取指定hash的所有key,value

    hgetall hash1

  • 相关阅读:
    官宣!Sam Altman加入微软,OpenAI临时CEO曝光,回顾董事会‘’政变‘’始末
    ArcGIS小技巧|四种计算图斑面积的方法
    外包干了2个月,技术退步明显...
    Spring Security身份认证绕过漏洞风险通告
    Python 网页请求:requests库的使用
    shell和ansible自动化运维实例
    YOLO目标检测——无人机检测数据集下载分享【含对应voc、coco和yolo三种格式标签】
    chrome插件:一个基于webpack + react的chrome 插件项目模板
    Linux入门:Windows上虚拟机VMware安装Ubuntu系统
    每天一道大厂SQL题【Day26】脉脉真题实战(二)活跃时长的均值
  • 原文地址:https://blog.csdn.net/weixin_57763462/article/details/132866333