redis

Posted ppxmaples

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了redis相关的知识,希望对你有一定的参考价值。

redis的五种数据类型之String

  1、string类型

    一个键最多可以存储512MB

    1》SET:设置key对应的value

    语法:SET  key  value[EX  seconds]等等

    SET  testStr1  ‘this is a test1‘

    SET  testStr2  ‘this is a test2‘

    注意:如果key已经存在数据库中,那么同名会产生覆盖

    有关于EX,PX,NX,XX内容可以参考Github

 

    2》GET:根据key来找到对应的value

    语法:GET  key

    GET  testStr1

    GET  testStr2

    当然我们在第二节的时候说过,如果没有对应的值get  XXX这样我们会得到nil的返回值

    技术分享图片

    以上的截图就是我们set两个,get两个,重复设置,覆盖一个的结果啦

    注意:如果key不是字符串就会报错

技术分享图片

    

    3》SETRANGE:设置字符串的一部分

    语法:SETRANGE  key  offset  value

    SETRANGE  testStr1 3  your

    技术分享图片

    以下自己测试

    SETRANGE  testStr1  4  not

    SETRANGE  testStr1  2  5  long

    SETRANGE  testStr1   6  test

    注意:如果设置的key原来的字符串长度比偏移量小,就会以零字节(x00)填充

    

    4》GETRANGE:返回字符串的一部分

    语法:GETRANGE  key  index

    GETRANGE  testStr1  0 4

    GETRANGE  testStr1  0 -3

    GETRANGE  testStr1  -4-2

    GETRANGE  testStr1  0 1000  获取所有的字符串

    技术分享图片

    我们的下表是从零开始截取到4的位置

    同样的我们的下表也支持负数,和我们python的range函数差不多啦

 

    5》GETSET:是指新key的值,返回旧的key

    SET  testStr3  ‘king‘

    GET  testStr3

    GETSET  testStr3  ‘queen‘

    技术分享图片

    实现字符串自增长的INCR,作用是我们常见到的计数器

    技术分享图片

    注意:当可以不存在的时候,GETSET返回时nil

 

    6》MSET:一次设置多个键值对

    MSET  key  value  [key  value...]

    MSET  testStr4  ‘king‘   testStr5  ‘queen‘

    7》MGET:一次获取多个键值对

 

    MGET  key  key ...

    MGET testStr4  testStr5

     技术分享图片

    如果没有这个key也是不会报错的,会返回一个nil

 

    8》STRLEN:获取字符串的长度

    STRLEN  testStr4

    技术分享图片

    如果没有key则会返回(integer)0

    EXISTS  key检测可以是否存在,返回值是0不存在,返回值是1存在

    

    9》SEXNX:只有key不存在的时候才能设置成功

    用法和SET一样,相当于EXISTS  +  SET的作用

 

    10》SETEX:设置一个键多久时间有效(规定时间内可以获得该数据)单位:秒

    语法:SETEX  key seconds  value

    SETEX  time  60  ‘times‘

    利用TTL获取剩余时间

    语法:TTL  key

    技术分享图片

    还有一个PSETEX设置同上,时间是以毫秒为单位,PTTL获取时间

    

    11》MSETNX:一次设置多个键值对,只有所有的可以不存在时,才会设置成功

    语法:MSETNX  key  value   [key  value]

    MSETNX  testStr5   ‘a‘  testStr6  ‘b‘

    技术分享图片

    

    12》INCR:把key中存储的数字加1

    语法:INCR  key

    SET  counter1  10

    GET  counter1    -->10

    INCR  counter1    -->11

    INCR  counter1    -->12

    INCR  counter1    -->13

    这种只能加1,如果相加其他的怎么办?

    技术分享图片

 

    这里提供了INCRBY,INCRBYFLOAT前者加整数指定步长,后者加上指定浮点数步长

    语法:INCRBY  key  [步长]

          INCRBYFLOAT  key  [浮点步长]

    INCRBY  counter1  10

    GET   counter1

    INCRBY  counter1  3

    GET   counter1

    INCRBY  counter1  3.1

     技术分享图片

 

    INCRBYFLOAT  counter1  1.2

    GET   counter1

    INCRBYFLOAT  counter1  3

    GET   counter1

     技术分享图片

 

    13》DECR:将key中存储的数字减1

    语法和INCR一样就不过多的赘述,同样的也有DECRBY但是没有DECRBYFLOAT,这点就要注意下

    技术分享图片

    

    以上就是有关String的大部分常用操作

 

以上是关于redis的主要内容,如果未能解决你的问题,请参考以下文章

RedisRedis 安装启动使用流程

RedisRedis 安装启动使用流程

redisredis知识点总结

redisredis知识点总结

RedisRedis高级

RedisRedis简述