前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >《闲扯Redis一》五种数据类型之String型

《闲扯Redis一》五种数据类型之String型

原创
作者头像
大道七哥
修改于 2020-03-30 03:08:02
修改于 2020-03-30 03:08:02
92800
代码可运行
举报
文章被收录于专栏:大道七哥大道七哥
运行总次数:0
代码可运行

一、前言#

Redis 提供了5种数据类型:String(字符串)、Hash(哈希)、List(列表)、Set(集合)、Zset(有序集合),理解每种数据类型的特点对于redis的开发和运维非常重要。

String是Redis的最基本的数据类型,可以理解为与 Memcached 一模一样的类型,即Key-Value型的数据,String类型是二进制安全的,另外 Redis 的 String 可以包含任何数据,简单的字符串、复杂的字符串(xml、json)、数字(整数、浮点数)、二进制(图片、音频、视频),一个 Redis 中字符串 value 最多可以是 512M。

二、String 类型操作命令#

命令

描述

用法

SET

1.将字符串值Value关联到Key2.Key已关联则覆盖,无视类型3.原本Key带有生存时间TTL,那么TTL被清除

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

GET

1.返回key关联的字符串值2.Key不存在返回nil3.Key存储的不是字符串,返回错误,因为GET只用于处理字符串

GET key

MSET

1.同时设置一个或多个Key-Value键值对2.某个给定Key已经存在,那么MSET新值会覆盖旧值3.如果上面的覆盖不是希望的,那么使用MSETNX命令,所有Key都不存在才会进行覆盖4.MSET是一个原子性操作,所有Key都会在同一时间被设置,不会存在有些更新有些没更新的情况

MSET key value [key value ...]

MGET

1.返回一个或多个给定Key对应的Value2.某个Key不存在那么这个Key返回nil

MGET key [key ...]

SETEX

1.将Value关联到Key2.设置Key生存时间为seconds,单位为秒3.如果Key对应的Value已经存在,则覆盖旧值4.SET也可以设置失效时间,但是不同在于SETNX是一个原子操作,即关联值与设置生存时间同一时间完成

SETEX key seconds value

SETNX

1.将Key的值设置为Value,当且仅当Key不存在2.若给定的Key已经存在,SEXNX不做任何动作

SETNX key value

三、应用场景#

  • 缓存功能:字符串最经典的使用场景,redis最为缓存层,Mysql作为储存层,绝大部分请求数据都是redis中获取,由于redis具有支撑高并发特性,所以缓存通常能起到加速读写和降低 后端压力的作用。
  • 计数器:许多运用都会使用redis作为计数的基础工具,他可以实现快速计数、查询缓存的功能,同时数据可以一步落地到其他的数据源。如:视频播放数系统就是使用redis作为视频播放数计数的基础组件。
  • 共享session:出于负载均衡的考虑,分布式服务会将用户信息的访问均衡到不同服务器上,用户刷新一次访问可能会需要重新登录,为避免这个问题可以用redis将用户session集中管理,在这种模式下只要保证redis的高可用和扩展性的,每次获取用户更新或查询登录信息都直接从redis中集中获取。
  • 限速:处于安全考虑,每次进行登录时让用户输入手机验证码,为了短信接口不被频繁访问,会限制用户每分钟获取验证码的频率。

四、特殊的String操作:INCR/DECR#

  INCR/DECR操作可以利用Redis自动帮助我们对一个Key对应的Value进行加减,在实际工作中还是很常用的。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Copy  INCR/DECR操作在 Redis 中的相关命令:

命令

描述

用法

INCR

1)Key中存储的数字值+1,返回增加之后的值2)Key不存在,那么Key的值被初始化为0再执行INCR3)如果值包含错误类型或者字符串不能被表示为数字,那么返回错误4)值限制在64位有符号数字表示之内即-9223372036854775808~9223372036854775807

INCR key

DECR

1)Key中存储的数字值-12)其余同INCR

DECR key

INCRBY

1)将key所存储的值加上增量返回增加之后的值2)其余同INCR

INCRBY key increment

DECRBY

1)将key所存储的值减去减量decrement2)其余同INCR

DECRBY key decrement

五、INCR/DECR 应用场景#

  • 原先单机环境中统计在线人数,变成分布式部署之后可以使用INCR/DECR
  • 由于Redis本身极高的读写性能,一些秒杀的场景库存增减可以基于Redis来做而不是直接操作DB

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Redis系统学习之五大基本数据类型(String(字符串))
String(字符串) 存入值 set key value 获取值 get key 追加值(如果key不存在,相对于新建set) append key value 查看长度 strlen key 实现
彼岸舞
2021/05/07
4980
Redis系统学习之五大基本数据类型(String(字符串))
Redis五大数据类型之String(字符串)命令
INCRBY key increment在加上增量 increment 之后, 键 key 当前的值。
别团等shy哥发育
2023/02/25
3080
Redis五大数据类型之String(字符串)命令
redis初识~String命令介绍
回家是人生中最幸福的一件事。回家路途上风景总是最美丽的,即使灯已暗,路已黑。回家路上,我一直按捺不住自己的激动的心情,跟着电视播放的歌曲一路哼唱,看着窗外黑漆漆,即使塞车也没有关系,因为我知道终点站是我的家。 Redis简介 Redis 是一个速度非常快的非关系型数据库,可以存储key与5种不同类型的value值之间的映射,可以将存储在内存的键值对数据持久化到硬盘中,并且还可以使用复制的特性来扩展读的性能。在Redis中用户可以直接使用院子的atomic命令及其变种来计算聚合数据。 String :可以
用户2196435
2018/07/19
4890
Redis:08---字符串对象
一、字符串对象概述 字符串类型是Redis最基础的数据结构。首先键都是字符串类型,而且其他几种数据结构都是在字符串类型基础上构建的,所以字符串类型能为其他四种数据结构的学习奠定基础 字符串就是一个由
用户3479834
2021/02/03
4260
Redis:08---字符串对象
Redis数据类型之String字符串类型
二进制安全是指,在传输数据时,保证二进制数据的信息安全,也就是不被篡改、破译等,如果被攻击,能够及时检测出来
兮动人
2021/06/11
7920
Redis数据类型之String字符串类型
Redis中的String类型常用方法(图文例子)
一、set命令 作用:赋值操作; 格式:set key value [expiration EX seconds|PX milliseconds] [NX|XX] EX seconds -- Set the specified expire time, in seconds. PX milliseconds -- Set the specified expire time, in milliseconds. NX -- Only set the key if it does not already
掉发的小王
2022/07/11
5620
Redis 字符串(Strings) 复习
字符串是Redis最简单的储存类型,它存储的值可以是字符串、整数或者浮点数,对整个字符串或者字符串的其中一部分执行操作;对整数或者浮点数执行自增(increment)或者自减(decrement)操作。
陈大剩博客
2023/03/06
4040
Redis 字符串(Strings) 复习
①Redis String 字符串类型【命令汇总】
set key value [NX|XX] [GET] [EX seconds|PX milliseconds|EXAT unix-time-seconds|PXAT unix-time-milliseconds|KEEPTTL]
.29.
2023/11/17
1950
①Redis String 字符串类型【命令汇总】
Redis教程03(String介绍)
返回 key 的值,如果 key 不存在时,返回 nil。 如果 key 不是字符串类型,那么返回一个错误。
用户4919348
2019/04/02
3380
【Redis入门到精通二】Redis核心数据类型(String,Hash)详解
字符串类型是 Redis 最基础的数据类型,关于字符串需要特别注意:
小皮侠
2024/09/23
2210
【Redis入门到精通二】Redis核心数据类型(String,Hash)详解
redis学习(五)
数据结构是相同的! String类似的使用场景:value除了是我们的字符串还可以是我们的数字!
崔笑颜
2020/08/31
3470
一文打通redis中的String类型
②String类型是二进制安全的。意味着Redis的string可以包含任何数据。比如jpg图片或者序列化的对象
一个风轻云淡
2023/10/15
2320
【Redis】五大常见的数据类型之 String
我们都知道 Redis 提供了丰富的数据类型,常见的有五种:String(字符串),Hash(哈希),List(列表),Set(集合)、Zset(有序集合)。
sidiot
2023/08/31
2450
【Redis】五大常见的数据类型之 String
【Redis篇】String类型命令详讲以及它的使用场景
Redis的基本使用命令(GET,SET,KEYS,EXISTS,DEL,EXPIRE,TTL,TYPE)_php redis get exists-CSDN博客
用户11369558
2024/12/24
1820
【Redis篇】String类型命令详讲以及它的使用场景
Redis的各种数据类型实践--String字符串
Redis作为一款NoSQL内存数据库,其丰富的数据类型、简单易用的命令、单机可达10万的高并发(官方数据),从面世以来就深受广大用户的喜爱。Redis的五种数据类型,是我们学习Redis时的必修课,但是大多数人都只是去学它的命令、API,却不知道这些数据类型都能应用在哪些场景,那这些命令学起来也就会很快就忘,终究只是“纸上谈兵”。
用户4464623
2020/09/17
7460
怒打50行代码
redis中的数据都是以key/value的形式存储的,五大数据类型主要是指value的数据类型,包含如下五种:
暖月寒星
2020/03/10
4780
redis | 四、redis之String
Redis 字符串(String) Redis 字符串数据类型的相关命令用于管理 redis 字符串值,基本语法如下:
雨中散步撒哈拉
2022/09/21
2760
深入剖析Redis系列:Redis数据结构之字符串
字符串类型 是 Redis 最基础的数据结构。字符串类型 的值实际可以是 字符串(简单 和 复杂 的字符串,例如 JSON、XML)、数字(整数、浮点数),甚至是 二进制(图片、音频、视频),但是值最大不能超过 512MB。
用户5546570
2019/06/06
3950
深入剖析Redis系列:Redis数据结构之字符串
Redis 字符串介绍及相关命令
Redis 的命令及其选项时不区分大小写的(键以及值是区分大小写的),本文中采用 [] 表示可选项,命令中的关键字使用大写,参数值使用小写以便区分
三产
2021/01/12
5540
2024 RedisAnd Mysql基础与进阶操作系列(15-1)作者——LJS[你个小黑子这都还学不会嘛?你是真爱粉嘛?真是的 ~;以后请别侮辱我家鸽鸽]
Redis数据类型之string类型及操作 1.string 类型及操作 简介
盛透侧视攻城狮
2024/10/22
1010
相关推荐
Redis系统学习之五大基本数据类型(String(字符串))
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验