Redis命令学习-string类型操作

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
时间: 2024-11-06 15:56:21

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

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

使用redis set 类型: 没有重复元素 list 链表类型 有重复累型 sort set 类型 没有重复元素 1.1 存储数据 读取数据 // 数据储存在 内存中 set name laowen // OK 表示成功 set age 22    // ok 表示成功 set add beijing // OK 表示成功 get name // "laowen" 表示获取成功 get age // "22" 表示获取成功 get addr // "be

小蚂蚁学习Redis笔记(3)——Redis数据类型之string类型

昨天安装完毕,今天终于可以进入正题了. Redis中string类型的常用命令: string是最简单的类型,一个key对应一个value,string类型是二进制安全的类型,Redis的string可以包含任何数据,比如:图片或者序列化的对象. 1.    set    设置一对键值 格式:set    键    值        例如:set     name    "allen" 含义:添加一个键值对. 值得注意的是,这个命令在设置重复的key时,value是会覆盖的.它的作用是

Redis命令学习—Hash(哈希表)操作

HDEL HDEL key field [field...]:删除Hash key中的一个或多个域, 不存在的域会被忽略. 返回值:被成功删除的key的数量. # 测试数据 redis> HGETALL abbr 1) "a" 2) "apple" 3) "b" 4) "banana" 5) "c" 6) "cat" 7) "d" 8) "dog&qu

[redis数据结构] 之 string类型

本文介绍redis的string类型的命令使用方式,string类型是二进制安全的,可以存放任何数据类型,图片.对象等等都是可以的.下面将罗列与string类型相关的语法操作: 1.如何添加一个string 命令:set 添加一个string对象 语法:set [key] [value] 范例:set name wangzp  阐述:添加了一个名为name的string对象,值为'wangzp':如果之前已经存在name对象,那么将覆盖原来的对象. 2.如何获取一个string 命令:get 获

Redis 命令学习

每天不学习点新的东西,感觉就有点会被社会淘汰掉了.也许现在学习的知识会很快忘记,下次学习用到这个知识点的时候,再回来翻记录的笔记,我想这样会比从头再学,效率会高点吧. 闲话不多聊,回归正题.今天学习redis的命令,争取把常用的redis命令都敲一遍. redis命令就是在redi服务上执行的.要想启动redis服务.我是在windows本机上安装的redis.先切换到redis目录 然后启动redis服务. 启动redis redis-cli Redis 键(key) set key conm

Redis之学习-键值操作

接下来有redis一些常用命令的学习,但是有部分是我们生产环境禁用的,会影响性能,不符合redis开发规范,大家可以自行搜索阿里redis开发规范进行借鉴与学习 1,keys pattern通用键查询 在redis里,允许模糊查询key有3个通配符 , ? ,[]: 通配任意多个字符?: 通配单个字符[]: 通配括号内的某1个字符127.0.0.1:6379> keys 1) "What"127.0.0.1:6379> keys What1) "What"

Redis命令学习—List(列表)

本文参考:http://redisdoc.com/list/index.html BLPOP BLPOP key[key ...] timeout:BLPOP是列表的阻塞式(blocking)弹出原语.是LPOP命令的阻塞版本,当给定列表内没有任何元素可供弹出的时候,连接将会被BLPOP    命令阻塞,直到等待超时,会有可弹出元素为止. 当给定多个key参数的时候,按参数key的先后顺序依次检查各个列表,弹出第一个非空列表的头元素. DEl job command request#删除元素 0

Redis命令学习-Set(集合)

1. SADD SADD key member[member ...]:将一个或者多个member计入集合key中去,已经存在集合中的member将会被忽略.计入key不存在,则会创建一个包含member元素的集合.当key不是集合时,返回一个错误. ?返回值:被添加到集合中的元素的个数. 127.0.0.1:6379> SADD bbs "csdn.com" (integer) 1 127.0.0.1:6379> SADD bbs "redis.com"

Redis基础学习(三)—Key操作

一.key的相关操作 1.删除 del key1 key2 ... Keyn 作用: 删除1个或多个键. 返回值: 不存在的key忽略掉,返回真正删除的key的数量.   2.重命名 rename key newkey 作用: 给key赋一个新的key名 注:如果newkey已存在,则newkey的原值被覆盖.   3.随机key randomkey 作用: 返回随机key.   4.是否存在key exists key 作用: 判断key是否存在,返回1/0.   5.判断key的类型 typ