Redis 数据类型String以及使用场景

本文涉及的产品
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
简介: Redis 数据类型String 类型介绍
  1. 应用场景

Redis应用很广泛,其实最主要的功能就是作为缓存使用。
例如作为一般业务设计的:

  1. 原始业务功能设计:秒杀、618活动、双11活动、排队购票
  2. 运营平台监控到的突发高频访问数据:突发时政要闻,被强势关注围观
  3. 高频、复杂的统计数据:在线人数、投票排行榜
  4. 五种基本类型
  • string String
  • hash HashMap
  • list LinkedList
  • set HashSet
  • sorted_set TreeSet
  1. redis 数据存储格式

redis 自身是一个 Map,其中所有的数据都是采用 key : value 的形式存储
数据类型指的是存储的数据的类型,也就是 value 部分的类型,key 部分永远都是字符串
string 类型
存储的数据:单个数据,最简单的数据存储类型,也是最常用的数据存储类型
存储数据的格式:一个存储空间保存一个数据
存储内容:通常使用字符串,如果字符串以整数的形式展示,可以作为数字操作使用

  • 添加/修改数据
set key value

image.png
这样就在redis存了一个name 的value 是xgc
同样也有获取数据

  • 获取数据
get key

image.png
最后 增加 获取都有了 那肯定有删除

  • 删除数据
del key

image.png
他会返回1表示已经删除。
如果再次获取会返回空值
image.png

  • 添加/修改多个数据
mset key1 value key2 value....

image.png

  • 获取多个数据
mget key1 key1 ....

image.png

  • 获取是字符个数(长度)
strlen key

image.png

  • 追加信息到原始信息后部(如果原始信息存在就追加,否则新建)
append key value

image.png
我这里原本的是xgc 后来添加666 再次获取就是xgc666

  • String的业务场景

大型企业级应用中,分表操作是基本操作,使用多张表存储同类型数据,但是对应的主键 id 必须保证统一性
,不能重复。Oracle 数据库具有 sequence 设定,可以解决该问题,但是 MySQL数据库并不具有类似的机
制,那么如何解决?
image.png
设置数值数据增加指定范围的值

incr key
incrby key increment
incrbyfloat key increment

增加1
image.png
增加指定的数值
image.png
增加小数
image.png

设置数值数据减少指定范围的值


decr key
decrby key increment

减1
image.png
减指定的值
image.png

  • String 类型数据的扩展操作

string在redis内部存储默认就是一个字符串,当遇到增减类操作incr,decr时会转成数值型进行计算。
redis所有的操作都是原子性的,采用单线程处理所有业务,命令是一个一个执行的,因此无需考虑并发
带来的数据影响。
注意:按数值进行操作的数据,如果原始数据不能转成数值,或超越了redis 数值上限范围,将报错。
9223372036854775807(java中long型数据最大值,Long.MAX_VALUE)
string 作为数值操作
Tips 1:
redis用于控制数据库表主键id,为数据库表主键提供生成策略,保障数据库表的主键唯一性
此方案适用于所有数据库,且支持数据库集群
image.png

  • string 类型数据的扩展操作

“最强女生”启动海选投票,只能通过微信投票,每个微信号每 4 小时只能投1票。
电商商家开启热门商品推荐,热门商品不能一直处于热门期,每种商品热门期维持3天,3天后自动取消热门。
新闻网站会出现热点新闻,热点新闻最大的特征是时效性,如何自动控制热点新闻的时效性。
news_id:HB314790725

解决方案:

setex key seconds value
psetex key milliseconds value 毫秒

设置10s 查询是可以查到的
image.png
过10后查询就是空了
image.png
🍮如果重复设置的话,set 命名 会将setex 清除重新设置。
redis 控制数据的生命周期,通过数据是否失效控制业务行为,适用于所有具有时效性限定控制的操作。
📌string 类型数据操作的注意事项
🍮数据操作不成功的反馈与数据正常操作之间的差异
① 表示运行结果是否成功

  • (integer) 0 → false 失败
  • (integer) 1 → true 成功
  • 表示运行结果值
  • (integer) 3 → 3 3个
  • (integer) 1 → 1 1个
  • 数据未获取到

(nil)等同于null

  • 数据最大存储量 512MB
  • 数值计算最大范围(java中的long的最大值)9223372036854775807

📌string 类型应用场景

🍮在redis中为大V用户设定用户信息,以用户主键和属性值作为key,后台设定定时刷新策略即可
eg: user:id:3506728370:fans → 12210947
eg: user:id:3506728370:blogs → 6164
eg: user:id:3506728370:focuss → 83
🍮在redis中以json格式存储大V用户信息,定时刷新(也可以使用hash类型)
eg: user:id:3506728370 →
{"id":3506728370,"name":"春晚","fans":12210862,"blogs":6164, "focus":83}
🍮redis应用于各种结构型和非结构型高热度数据访问加速
🍮库中的热点数据key命名惯例
key 的设置约定

表名 主键名 主键值 字段名
order id 29437595 name
equip id 390472345 type
news id 202004150 title
相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
4天前
|
存储 NoSQL 关系型数据库
【Redis】Redis的特性和应用场景 · 数据类型 · 持久化 · 数据淘汰 · 事务 · 多机部署
【Redis】Redis的特性和应用场景 · 数据类型 · 持久化 · 数据淘汰 · 事务 · 多机部署
15 0
|
4天前
|
NoSQL Redis 数据库
Redis中的常用命令非常丰富,涵盖了各种数据类型的基本操作以及服务器管理和维护的相关指令
【5月更文挑战第15天】Redis常用命令包括通用(如PING、SELECT)、键操作(KEYS、EXISTS、DEL)、字符串(SET、GET)、哈希(HSET、HGET)、列表(LPUSH、LPOP)、集合(SADD、SMEMBERS)和有序集合(ZADD、ZRANGE)等。这些命令用于数据操作及服务器管理,满足不同场景需求。了解更多命令,建议参考Redis官方文档。
12 2
|
4天前
|
SQL NoSQL Java
Redis数据类型 Hash Set Zset Bitmap HyperLogLog GEO
Redis数据类型 Hash Set Zset Bitmap HyperLogLog GEO
18 0
|
4天前
|
NoSQL Java Unix
Redis基础操作 String List
Redis基础操作 String List
10 0
|
4天前
|
存储 NoSQL 定位技术
Redis常用数据类型及常用命令
这些是Redis中常用的数据类型和命令。Redis还提供了许多其他命令和功能,用于数据存储、操作和查询。你可以根据需要选择适当的数据类型和命令来满足你的应用程序需求。
25 4
|
4天前
|
存储 NoSQL 安全
Redis入门到通关之Redis数据结构-String篇
Redis入门到通关之Redis数据结构-String篇
35 1
|
4天前
|
存储 缓存 NoSQL
Redis入门到通关之String命令
Redis入门到通关之String命令
19 0
|
4天前
|
存储 SQL NoSQL
Redis入门到通关之五大基本数据类型及其使用场景
Redis入门到通关之五大基本数据类型及其使用场景
17 0
|
4天前
|
存储 NoSQL Redis
第十八章 Redis查看配置文件和数据类型
第十八章 Redis查看配置文件和数据类型
21 0
|
4天前
|
存储 消息中间件 缓存
Redis 命令全解析之 String类型
Redis 命令全解析之 String类型
15 1