• Redis五种基本数据类型-String


            String 是Redis里面的最最简单的一种数据结构,在Redsi中,所有的key都是字符串,(java对象序列化后就是字符串)但是不同的 key对应的value则具有不同的数据结构,我们所说的五种不同的数据类型,主要是指value的数据类型不同。
            Redis中的字符串是动态字符串,内部是可以修改的,像java中的StringBuffer,(注String是不可以修改的),它采用分配冗余空间的方式来减少内存的频繁分配。在Redis内部结构中,一般实际分配的内存会大于需要的内存,当字符串少于1M的时候,扩容都是在现有的空间基础上加倍,扩容每次扩1M空间,最大512M。

    操作命令:

    -append
    使用append命令时,如果key已经存在,则直接在对应的value增加值
    -decr
    可以实现对value的减1操作(前提value是一个数字),如果value不是数字会报错,如果value不存在,则会给一个默认值0,在默认值的基础上建一下。
    -set
    set就是给一个key赋值。
    -decrby
    和decr类似,但是可以设置自己的步长,该命令第二个参数就是步长。

    -get
    get用来获取一个key的value。
    -getrange
    getrange 可以用来返回key对应的value的子串,类似于java的substring方法范围参数 4 到-1,这里-1表示最后一个-2表示倒数第二个数,截取的起始是4终止位置-1,-1表示最后一个字符串。

    -getset
    获取并更新某一个key。

     

    -incr
    给某一个key的value自增,每次自增1。

    -incrby
    给某一个key的value自增,同时还可以设置步长。
    -incrbyfloat
    和incrby类似但是可以设置浮点数。

     

    -mget和-mset
    批量设置和批量获取。

     

     -ttl
    查看key的有效期 ,值为-1表示永远不会过期,-2表示已经过期。
    -setex
    在给key设置value的同时,还设置过期时间单位是秒。

    -psetex
    和setex类似只不过这个时间单位是毫秒。

    -setnx
    set if not exit 默认情况下set命令会覆盖已经存在key的value,setnx则不会。

    -msetnx
    同setnx只不过批量设置。

    -setrange
    覆盖一个已经存在key的value,参数有一个偏移量,0是起始位置为0。

    -strlen
    查看字符串的长度。

    1.1BIT相关命令
    在redis中,字符串都是以二进制的方式来存储的。例如 set k1 a,a对应的ASCII 码是97,97转换为二进制是01100001,BIT相关命令就是对二进制进行操作。

    -getbit
    key对应的value在offset 处的value值,也就是bit值。

    -setbit
    修改key对应的value在offset处的bit值。就是二进制的值。

    b对应的ASCII码是98,bit值是01100010  (计算十进制时,是2从右向左开始0-7,但是存储bit值时位移offset是从左向右计算的)。
    a对应的ASCII码是97,bit值是01100001。
    下面通过setbit命令把a变成b

     

    - bitcount
    统计二进制数据中1的个数,这里0 3是位移偏移量但是是指a而不是二进制的位移因为k1存储的是a。

     

    参考:江南一点雨Redis视频教程

     

     

     

     

  • 相关阅读:
    CDD文件——CANdelaStudio
    项目管理之项目计划TG1
    有了PySnooper,不用print、不用debug轻松查找问题所在!
    day18 代码回想录 二叉树05 找树左下角的值&路径总和&从中序与后序遍历序列构造二叉树
    微信小程序获取公众号的文章
    如何使用VisualSVN在Windows系统上设置SVN服务器并公网远程访问
    【遗传算法】求解TSP问题
    【练习题】一.线性表
    【数据结构】单链表——单链表的定义及基本操作的实现(头插、尾插、头删、尾删、任意位置的插入与删除)
    【腾讯云HAI域探秘】0基础也能开发应用
  • 原文地址:https://blog.csdn.net/love_live2/article/details/126048568