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

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
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
目录
相关文章
|
1月前
|
存储 Java 对象存储
String 属于基础的数据类型吗
String 在多数编程语言中被视为一种基础数据类型,但实际上它是由字符组成的序列。在一些语言中,如 Java 和 Python,String 被设计为不可变的对象,以简化编程和提高安全性。
36 5
|
6天前
|
存储 缓存 NoSQL
解决Redis缓存数据类型丢失问题
解决Redis缓存数据类型丢失问题
121 85
|
22天前
|
存储 NoSQL Redis
redis常见数据类型
Redis 是一种基于内存的键值存储数据库,支持字符串、哈希表、列表、集合及有序集合等多种数据类型,每种类型均有特定用途与适用场景,提供丰富的命令操作,适用于高速数据访问与处理。
35 5
|
1月前
|
Java
在Java中如何将基本数据类型转换为String
在Java中,可使用多种方法将基本数据类型(如int、char等)转换为String:1. 使用String.valueOf()方法;2. 利用+运算符与空字符串连接;3. 对于数字类型,也可使用Integer.toString()等特定类型的方法。这些方法简单高效,适用于不同场景。
57 7
|
1月前
|
存储 消息中间件 NoSQL
使用Java操作Redis数据类型的详解指南
通过使用Jedis库,可以在Java中方便地操作Redis的各种数据类型。本文详细介绍了字符串、哈希、列表、集合和有序集合的基本操作及其对应的Java实现。这些示例展示了如何使用Java与Redis进行交互,为开发高效的Redis客户端应用程序提供了基础。希望本文的指南能帮助您更好地理解和使用Redis,提升应用程序的性能和可靠性。
41 1
|
2月前
|
NoSQL Redis
Redis 字符串(String)
10月更文挑战第16天
49 4
|
2月前
|
存储 消息中间件 NoSQL
Redis 数据类型
10月更文挑战第15天
45 1
|
2月前
|
存储 分布式计算 NoSQL
大数据-40 Redis 类型集合 string list set sorted hash 指令列表 执行结果 附截图
大数据-40 Redis 类型集合 string list set sorted hash 指令列表 执行结果 附截图
29 3
|
3月前
|
存储 消息中间件 缓存
深入探析Redis常见数据类型及应用场景
深入探析Redis常见数据类型及应用场景
74 2
|
3月前
|
存储 JSON NoSQL
redis基本数据结构(String,Hash,Set,List,SortedSet)【学习笔记】
这篇文章是关于Redis基本数据结构的学习笔记,包括了String、Hash、Set、List和SortedSet的介绍和常用命令。文章解释了每种数据结构的特点和使用场景,并通过命令示例演示了如何在Redis中操作这些数据结构。此外,还提供了一些练习示例,帮助读者更好地理解和应用这些数据结构。
redis基本数据结构(String,Hash,Set,List,SortedSet)【学习笔记】