APPEND key value

    假设key已经存在,而且为字符串。那么这个命令会把value追加到原来值的末尾。假设key不存在。首先创建一个空字符串,再运行追加操作。
    返回值:返回APPEND后字符串的长度。
  1. EXISTS mykey
    0
    APPEND mykey "Hello"
    5
    APPEND mykey " world"
    11
    GET mykey
    Hello world

SETBIT

    SETBIT key offset value
    对key所存储的字符串值,设置或清除指定偏移量上的位(bit)。

    位的设置或清除取决于value參数。
    当key不存在时,自己主动生成一个新的字符串值。

    
  1. SETBIT bit 10086 1
    0
    SETBIT bit 10086 1
    1
    GETBIT bit 10086
    1
    GETBIT bit 100
    0

BITCOUNT

   BITCOUNT key [start] [end]
    计算给定字符串中,被设置为1 的比特位的数量。对于不存在的字符串。BITCOUNNT操作返回0。
    返回值:被设置为1的位的数量。
  1. BITCOUNT bits
    0
    SETBIT bits 0 1
    0
    BITCOUNT bits
    1
    SETBIT bits 3 1
    0
    BITCOUNT bits
    2
  • 模式:使用bitmap实现用户上线次数统计
能够使用SETBIT key为站点上线的天数。value为1,来确定用户在某天在线。从而统计出用户的上线天数。如设置Peter在第101天在线,则能够使用: 
  1. SETBIT peter 101 1
    依次类推。最后统计就可以获取用户在线天数。

GETBIT key offset

    对key所存储的字符串值。获取指定偏移量上的位。
    当offset比字符串的长度大。或者key不存在时,返回0。

  1. EXISTS bit
    0
    GETBIT bit 10086
    0
    SETBIT bit 4 1
    0
    GETBIT bit 4
    1

DECR

    将key中存储的数字值减一。
    假设key不存在,那么会初始化key值为0。然后惊醒DECR操作。操作限制在64位有符号数字内。
    返回值:运行DECR命令后的key值。
    
  1. SET num 10
    OK
    DECR num
    9
    EXISTS count
    0
    DECR count
    -1

DECRBY key decrement

    将key所存储的值减去减量decrement。

    假设key不存在,则先被初始化为0,然后再运行操作。

假设值包括错误的类型,则会返回一个错误。

    返回值:操作后的值。

  1. SET count 10
    OK
    DECRBY count 20
    -10
    EXISTS pages
    0
    DECRBY pages 1
    -1
    DECRBY pages -1
    0
    DECRBY pages -3
    3

GET key

       返回key所关联的字符串的值。假设key不存在,则返回nil。
        返回值:key不存在时,返回nil。否则返回key的值。

        假设key不是字符串类型。则返回一个错误。
  1. GET db
    SET DB redis
    OK
    get DB
    redis
    DEL db
    0
    EXISTS db
    0
    LPUSH db redis mongodb mysql
    3
    GET db
    ERR Operation against a key holding the wrong kind of value

GETRANGE key start end

    返回字符串值的字串。start end指定截取范围(包含start end在内)。负数表示从最后開始计数。

    返回值:截取的子串。

  1. SET greeting "Hello,my friend"
    OK
    GETRANGE greeting 0 4
    Hello
    GETRANGE greeting -1 -5
    GETRANGE greeting -3 -1
    end
    GETRANGE greeting 0 -1
    Hello,my friend
    GETRANGE greeting 0 10000000
    Hello,my friend

GETSET key value

    将给定key的值设为value,并返回key的旧值。
    当key存在但不是字符串时。返回一个错误。

    返回值:返回给定key的旧值。
             
      当key没有旧值,即key不存在时。返回nil。

  1. GETSET db mongodb
    GET db
    mongodb
    GETSET db redis
    mongodb
模式:GETSET和INCR组合使用,实现获取一个原子性操作的运行计数器结果,并对结果进行复位。
    
  1. INCR mycount
    1
    INCR mycount
    2
    INCR mycount
    3
    GETSET mycount 0
    3

INCR key

    将key中存储的数字值增一。
    假设key不存在,那么key会被初始化0,再运行INCR操作。

    假设包括错误的数据类型,则会返回一个错误。

    返回值:运行INCR操作后key的值。
    
  1. SET page_view 20
    OK
    INCR page_view
    21
模式:计数器

INCRBY key increment

    将key所存储的值添加增量increment。
    假设key不存在,那么key的值会先被初始化为0,再运行INCRBY操作。
    
  1. SET rank 50
    OK
    INCRBY rank 20
    70
    GET rank
    70
    SET book "REDIS"
    OK
    INCRBY book 1
    ERR value is not an integer or out of range

INCRBYFLOAT key increment

    为key中所存储的 值加上浮点数的增量increment。

不管加法计算所得的浮点数的实际精度有多长。

INCRBYFLOAT 的计算结果也最多仅仅能表示小数点的后十七位。
    返回值:运行之后key的值。
    
  1. SET mykey 10.50
    OK
    INCRBYFLOAT mykey 0.1
    10.6
    SET mykey 314e-2
    OK
    INCRBYFLOAT mykey 0.5
    3.64
    SET mykey 4
    OK
    INCRBYFLOAT mykey 0.5
    4.5

MGET key[key...]

    返回所全部给定key的值。

    假设给定key里面,某个key不存在,则这个key返回特殊值nil。

该命令永不失败。

    返回值:一个包括全部给定key的值的列表。
  1. SET redis redis.com
    OK
    SET mongodb mongodb.com
    OK
    MGET redis mongodb mysql
    redis.com
    mongodb.com

MSET key value[key value]

    同一时候设置一个或多个key-value对。
    假设某个给定key存在,那么覆盖原有值。

假设不希望被覆盖。能够使用MSENX命令。

    MSET是一个原子操作,全部给定的key都会在同一时间被设置。
    返回值:总是返回OK。

  1. MSET date "2012-05" time "11:00 am" weather "SUNNY"
    OK
    MGET date time weather
    2012-05
    11:00 am
    SUNNY
    SET google "google.hk"
    OK
    MSET google "google.com"
    OK
    GET google
    google.com

MSETNX key value[key value ...]

    同一时候设置多个key-value,当且仅当全部给定key都不存在。

假设有一个key存在,那么MSETNX操作会拒绝运行全部给定的key。

    MSETNX是原子操作,全部字段要么成功,要么失败。

    返回值:全部key成功。返回1。

失败返回0。

  1. MSETNX rmdbs "MySql" nosql "MongoDB" key-value-store "Redis"
    1
    MGET rmdbs nosql
    MySql
    MongoDB
    MSETNX rmdbs "MySql" language "Java"
    0

PSETEX key milliseconds value

    已milliseconds毫秒为单位。设置key的生存时间。
    返回值:成功返回OK。
  1. PSETEX mykey 10000 "HELLO"
    OK
    PTTL mykey
    7110
    GET mykey
    HELLO
    PTTL mykey
    -1
    GET mykey

SET key value [EX seconds] [PX milliseconds] [NX] [NX]

    将字符串value关联到key。

    假设key已经持有其它值,SET操作覆盖旧值。
    对于某个原本都有生存时间TTL的键来说。当SET命令成功在运行时,原TTL会被清除。
    可选參数:
  • EX seconds:设置键的国企时间为second秒。此參数等同于SETEX key second value。

  • PX millisecond:设置键的过期时间为millisecond毫秒。SETkey
    value PXmillisecond
    效果等同于
    PSETEX
    key millisecondvalue。
  • NX:仅仅在key不存在时。才对key运行操作。

    set key value NX 等同于: SETNX key value。

  • XX:仅仅在键已经存在时,才进行操作。
  1. SET key "value"
    OK
    GET key
    value
    SET key "new-value"
    OK
    get key
    new-value
    SET key "hello" EX 100860
    OK
    TTL key
    100856
    TTL key
    100852
    SET key "moto" PX 123331
    OK
    TTL key
    121
    get key
    moto
    TTL key
    107
    SET key "value" NX
    SET key1 "value" NX
    OK
    SET key "value" XX
    OK
    SET key2 "value" XX

SETEX key seconds value

    将value关联到key。并将key的生存时间设置为seconds秒。
    假设key已经存在,SETEX将会覆盖旧值。
    返回值:设置成功时返回OK。蛋seconds參数不合法时,返回一个错误。

  1. SETEX user_id 60 10086
    OK
    TTL user_id
    54
    get user_id
    10086
    get user_id
    10086
    TTL user_id
    36

SETNX key value

    将key的值设为value。当且仅当key不存在。
    若给定的key已经存在。则SETNX不做不论什么动作。SETNX 是 SET if Not eXists。
    返回值:成功1,失败0。
  1. EXISTS job
    0
    SETNX job "code-farmer"
    1
    SETNX job "programmer"
    0
    GET job
    code-farmer

SETRANGE key offset value

    用value參数overwrite给定key所存储的字符串,从offset開始。
    不存在的key当做空白字符串处理。
    SETRANGE命令会确保字符串足够长以便将value设置在指定的廉价量上。假设字符串长度比偏移量小,则空白处使用零字节(\x00)填充。
    使用的最大偏移量为2^29 - 1。
    返回值:改动后的字符串长度。

  1. redis> SET greeting "hello world"
    OK
    redis> SETRANGE greeting 6 "Redis"
    (integer) 11
    redis> GET greeting
    "hello Redis"
    # 对空字符串/不存在的 key 进行 SETRANGE
    redis> EXISTS empty_string
    (integer) 0
    redis> SETRANGE empty_string 5 "Redis!" # 对不存在的 key 使用 SETRANGE
    (integer) 11
    redis> GET empty_string # 空白处被"\x00"填充
    "\x00\x00\x00\x00\x00Redis!"

STRLEN key

    返回字符串的长度。当key不是一个字符串时。返回一个错误。
    返回值: 字符串长度。

当key不存在时,返回0。

  1. SET mykey "Hello World"
    OK
    STRLEN mykey
    11
    STRLEN nonestr
    0


Redis命令学习-string类型操作的更多相关文章

  1. redis 的使用 (基础, key操作, string类型操作)

    使用redis set 类型: 没有重复元素 list 链表类型 有重复累型 sort set 类型 没有重复元素 1.1 存储数据 读取数据 // 数据储存在 内存中 set name laowen ...

  2. redis命令学习(二) · THIS SPACE

    列表(Lists)操作命令 Redis列表是简单的字符串列表,按照插入顺序排序. 你可以添加一个元素导列表的头部(左边)或者尾部(右边)LPUSH命令插入一个新的元素导头部,而RPUSH插入一个新元素 ...

  3. Redis - string类型操作

    以个人信息为例操作string类型 设置操作: set:     set key value            创建key-value名值对 setnx:      setnx key value ...

  4. Redis 命令学习

    每天不学习点新的东西,感觉就有点会被社会淘汰掉了.也许现在学习的知识会很快忘记,下次学习用到这个知识点的时候,再回来翻记录的笔记,我想这样会比从头再学,效率会高点吧. 闲话不多聊,回归正题.今天学习r ...

  5. 3、Redis中对String类型的操作命令

    写在前面的话:读书破万卷,编码如有神 -------------------------------------------------------------------- ------------ ...

  6. Redis自学笔记 --string类型

    string类型                                                                                  set 赋值 get ...

  7. Redis中一个String类型引发的惨案

    ​      曾经看到这么一个案例,有一个团队需要开发一个图片存储系统,要求这个系统能快速记录图片ID和图片存储对象ID,同时还需要能够根据图片的ID快速找到图片存储对象ID.我们假设用10位数来表示 ...

  8. Redis之String类型操作

    接口IRedisDaoStr: package com.net.test.redis.base.dao; import java.util.List; import java.util.Map; /* ...

  9. redis命令学习的注意问题

    1.set get命令只用于字符串,get命令取key值时string正常返回,没有key返回nil,其他类型会报错 设置的时候是set test redis ex 200000等同于SETEX te ...

随机推荐

  1. 数据结构-二叉搜索树(BST binary search tree)

    本文由@呆代待殆原创,转载请注明出处:http://www.cnblogs.com/coffeeSS/ 二叉搜索树简介 顾名思义,二叉搜索树是以一棵二叉树来组织的,这样的一棵树可以用一个链表数据结构来 ...

  2. luogu P4012 深海机器人问题

    luogu P4012 深海机器人问题 // luogu-judger-enable-o2 #include<queue> #include<cstdio> #include& ...

  3. BZOJ 3524 [Poi2014]Couriers(可持久化线段树)

    [题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=3524 [题目大意] 给一个长度为n的序列a.1≤a[i]≤n. m组询问,每次询问一个 ...

  4. 1.9(java学习笔记)object类及toString()与equals()方法

    object类 java中objec是所有类公共的父类,一个类只要没有明显的继承某一类,那么它就是继承object类. 例如 class Person {......};和class Person e ...

  5. 搭建SSH框架–使用篇

    创建如下包: action用于响应请求 service则是提供请求的操作 dao用于操作数据库 entity用于映射数据库表 打开DB Browser –> personalCD(创建篇的数据库 ...

  6. 推荐10个免费的HTML编辑器

    如果你想开发一个网站,你肯定想要一个很棒的HTML编辑器,一个好的编辑器可以让代码更加整齐格式化,前端显示也会更好,从而提升你的工作效率.下面就为开发者推荐10个免费的HTML编辑器,你可以尝试使用. ...

  7. VisualSVN设置提交时必须输入log信息

    在别人的基础上修改的: 自己在Windows上用VisualSVN搭了个服务器,默认提交代码是可以不填任何信息,这可不是我所期望的,于是找到了下面的解决方案: 在VisualSVN的管理控制台中可以设 ...

  8. Android2017进阶知识点、面试题及答案(精选版)

    前言 没啥好说的,撸起袖子就是干吧! 1 2 JAVA 相关 1.静态内部类.内部类.匿名内部类,为什么内部类会持有外部类的引用?持有的引用是this?还是其它? 静态内部类:使用static修饰的内 ...

  9. 关于ComboGrid取值为非下拉框数据是,隐藏面板数据清空

    $('#areaGuid').combogrid({ panelWidth: 300, idField: 'guid', textField: 'name', mode: 'remote', meth ...

  10. Android--使用XMLPull解析xml

    在Android中极力推荐的xmlpull方式解析xml.xmlpull不只能够使用在Android上.相同也适用于javase,但在javase环境下.你须要自己去获取xmlpull所依赖的类库. ...