千家信息网

NoSQL----Redis 2.4--String

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,一、简介:string: 字符串类型是Redis中最为基础的数据存储类型,它在Redis中是二进制安全的,这便意味着该类型可以接受任何格式的数据,如JPEG图像数据或Json对象描述信息等。在Redi
千家信息网最后更新 2026年10月31日NoSQL----Redis 2.4--String


一、简介:string: 字符串类型是Redis中最为基础的数据存储类型,它在Redis中是二进制安全的,这便意味着该类型可以接受任何格式的数据,如JPEG图像数据或Json对象描述信息等。在Redis中字符串类型的Value最多可以容纳的数据长度是512M.

二、应用场景:

实时记录网站每天的的PV和UV

实时新浪微博每个账号关注和被关注人数。


三、常用操作:

1、set方法:

set key value

将key的值设为value。

如果key已经存在,set就覆盖旧值。

例如:redis> set color red

redis> get color

"red"

redis> set color black

redis> get color

"black"

2、setnx方法:

setnx key value

将key的值设为value,当且仅当key不存在。

若key已经存在,则SETNX不覆盖旧值,即保持原值。

SETNX是"SET if Not eXists"(如果不存在,则SET)的简写。

例如:

redis> SETNX job "programmer"

(integer) 1 job设置成功


redis> SETNX job "code-farmer"

(integer) 0 job设置失败


redis> GET job

"programmer" 没有被覆盖


3、setex方法:

SETEX key seconds value

将key的值设为value,并将key的生存时间设为seconds(以秒为单位)。

如果key 已经存在,SETEX命令将覆盖旧值。

注意:这个命令类似于以下两个命令:

SET key value

EXPIRE key seconds # 设置生存时间

不同之处是,SETEX是一个原子性(atomic)操作,关联值和设置生存时间两个动作会在同一时间内完成,该命令在Redis用作缓存时,非常实用。


4、setrange方法:

setrange key offset value

用value参数覆写给定key所储存的字符串值,从下标offset开始。

redis> set email haha@163.com

redis> get email

haha@163.com

redis> setrange email 5 google.com

redis> get email

haha@google.com

redis> setrange email 5 sina.cn

redis> get email

haha@sina.cncom

5、mset方法:

MSET key value [key value ...]

同时设置一个或多个key-value对。

当发现同名的key存在时,MSET会用新值覆盖旧值,如果你不希望覆盖同名key,请使用MSETNX命令。

MSET是一个原子性(atomic)操作,所有给定key都在同一时间内被设置,某些给定key被更新而另一些给定key没有改变的情况,不可能发生。

redis> MSET date "2015.11.11" time "9.09a.m." weather "sunny"OK

6、append方法:

APPEND key value

如果key已经存在并且是一个字符串,APPEND命令将value追加到key原来的值之后。

如果key不存在,APPEND就简单地将给定key设为value,就像执行SET key value一样。


# 情况1:对不存在的key执行APPENDredis> EXISTS myphone  # 确保myphone不存在(integer) 0redis> APPEND myphone "mi"  # 对不存在的key进行APPEND,等同于SET myphone "mi"(integer) 5 # 字符长度# 情况2:对字符串进行APPENDredis> APPEND myphone " - 1110"(integer) 12  # 长度从5个字符增加到12个字符redis> GET myphone  # 查看整个字符串"mi - 1110"

7、get方法:

get key

返回key所关联的字符串值。

如果key不存在则返回特殊值nil。

假如key储存的值不是字符串类型,返回一个错误,因为GET只能用于处理字符串值。

redis> GET animate(nil)redis> SET animate "anohana"OKredis> GET animate"anohana"

8、mget方法:

MGET key [key ...]

返回所有(一个或多个)给定key的值。

如果某个指定key不存在,那么返回特殊值nil。因此,该命令永不失败。

9、getrange方法:

GETRANGE key start end

返回key中字符串值的子字符串,字符串的截取范围由start和end两个偏移量决定(包括start和end在内)。

负数偏移量表示从字符串最后开始计数,-1表示最后一个字符,-2表示倒数第二个,以此类推。

GETRANGE通过保证子字符串的值域(range)不超过实际字符串的值域来处理超出范围的值域请求。

备注:在<=2.0的版本里,GETRANGE被叫作SUBSTR。

redis> SET greeting "hello, my friend"OKredis> GETRANGE greeting 0 4  # 返回索引0-4的字符,包括4。"hello"redis> GETRANGE greeting -1 -5  # 不支持回绕操作,必须从前往后截取""redis> GETRANGE greeting -3 -1  # 负数索引"end"redis> GETRANGE greeting 0 -1  # 从第一个到最后一个"hello, my friend"redis> GETRANGE greeting 0 1008611  # 值域范围不超过实际字符串,超过部分自动被符略"hello, my friend"GETSET key value将给定key的值设为value,并返回key的旧值。当key存在但不是字符串类型时,返回一个错误。redis> GETSET mail xxx@google.com  # 因为mail之前不存在,没有旧值,返回nil(nil)redis> GETSET mail xxx@yahoo.com  # mail被更新,旧值被返回"xxx@google.com"strlen key返回key所储存的字符串值的长度。当key储存的不是字符串值时,返回一个错误。当 key不存在时,返回0。
redis> SET mykey "Hello world"OKredis> STRLEN mykey(integer) 11redis> STRLEN nonexisting # 不存在的key长度视为0(integer) 0

12、incr方法:

INCR key

将key中储存的数字值+1。

如果key不存在,以0为key的初始值,然后执行INCR操作。

如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。

本操作的值限制在64位(bit)有符号数字表示之内。

redis> SET page_view 20OKredis> INCR page_view(integer) 21redis> GET page_view    # 数字值在Redis中以字符串的形式保存"21"

13、incrby方法:

INCRBY key increment

将key所储存的值加上增量increment。

如果key不存在,以0为key的初始值,然后执行INCRBY命令。

如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。

本操作的值限制在64位(bit)有符号数字表示之内。

关于更多递增(increment)/递减(decrement)操作信息,参见INCR命令。


# 情况1:key存在且是数字值redis> SET rank 50  # 设置rank为50OKredis> INCRBY rank 20  # 给rank加上20(integer) 70redis> GET rank"70"redis> INCRBY rank -20  # 给rank加上-20(integer) 50# 情况2:key不存在redis> EXISTS counter(integer) 0redis> INCRBY counter 30(integer) 30redis> GET counter"30"# 情况3:key不是数字值redis> SET book "long long ago..."OKredis> INCRBY book 200(error) ERR value is not an integer or out of rangekey中储存的数字值-1。如果key不存在,以0为key的初始值,然后执行DECR操作。如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。本操作的值限制在64位(bit)有符号数字表示之内。关于更多递增(increment)/递减(decrement)操作信息,参见INCR命令。
 情况1:对存在的数字值key进行DECRredis> SET failure_times 10OKredis> DECR failure_times(integer) 9# 情况2:对不存在的key值进行DECRredis> EXISTS count(integer) 0redis> DECR count(integer) -1# 情况3:对存在但不是数值的key进行DECRredis> SET company YOUR_CODE_SUCKS.LLCOKredis> DECR company(error) ERR value is not an integer or out of range
15、decrby方法:

DECRBY key decrement

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

如果key不存在,以0为key的初始值,然后执行DECRBY操作。

如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。

本操作的值限制在64位(bit)有符号数字表示之内。

关于更多递增(increment)/递减(decrement)操作信息,参见INCR命令


# 情况1:对存在的数值key进行DECRBYredis> SET count 100OKredis> DECRBY count 20(integer) 80# 情况2:对不存在的key进行DECRBYredis> EXISTS pages(integer) 0redis> DECRBY pages 10(integer) -10redis> DECRBY pages -20(integer) 10


字符 字符串 数字 类型 方法 命令 情况 错误 时间 长度 信息 值域 数据 符号 限制 两个 更多 范围 特殊 原子 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 云南咖啡 华服互联网科技怎么样 互联网金融监管科技数据 狮子座互联网科技培训 科技大学互联网专业好不好 银川新华互联网科技学校地址 互联网金融中的现代科技 湖北码尼互联网科技有限公司电话 崇明区互联网教育科技售后服务 北京市互联网新科技 上海创道互联网络科技有限公司 下一代互联网重大应用科技园 易企秀互联网科技是做什么的 神州科技互联网有限公司 上海乐五互联网科技有限公司 艺电能源互联网科技有限公司招聘 长沙易易互联网科技有限公司 北京瑞云互联网科技有限公司 互联网科技企业文化 互联网 科技节活动 微视频大赛 科技互联网项目 互联网科技有限公司经营范围 奔汉互联网科技 火传媒上海互联网科技 青岛中康互联网医疗科技有限公司 千方科技属于互联网企业吗 互联网领先科技宣传片 广州互联网高科技取餐柜 求路客互联网科技电话 上海旺乐尼互联网科技有限公司
0