Redis数据类型之String

本文介绍了Redis中的基本数据类型String,包括其二进制安全的特性,允许存储的最大值,以及常用操作如原子加减。文章重点讲述了String在实际应用中的场景,如单值缓存、对象缓存、实现分布式锁、Web集群session共享和分布式系统全局序列号生成,展示了String在解决并发问题和提高性能方面的优势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、Redis五种数据类型

在这里插入图片描述
前言:
string是redis最基本的类型,一个key对应一个value。
string类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象 。
string类型是Redis最基本的数据类型,一个键最大能存储512MB。

一、String结构

1.字符串常用操作

命令解释
SET key value存入字符串键值对
MSET key value批量存储字符串键值对
SETNX key value存入一个不存在的字符串键值对
GET key获取一个字符串键值
MGET key [key…]批量获取字符串键值
DEL key [key…]删除一个键
EXPIRE key seconds设置一个键的过期时间(秒)
PEXPIRE key milliseconds设置一个键的过期时间(毫秒)

2.字符串原子加减

命令解释
INCR key将key中存储的数字值加1
DECR key将key中存储的数字值减1
INCRBY key increment将key所存储的值加上 increment
DECRBY key decrement将key所存储的值减去 decrement

更多操作类型参考:
https://www.runoob.com/redis/redis-strings.html
http://redisdoc.com/

二、String应用场景

1.单值缓存
SET key value
INCRE key
DECRE key
考虑到redis是单线程模式的,所以redis的操作都是原子性的,可用作计数器,商品库存,微博点赞数等。
例如:
每阅读一次文章就添加一个阅读量
在这里插入图片描述
INCR article:readcount:文章id
GET article:readcount:文章id
在这里插入图片描述

2.对象缓存
在这里插入图片描述
(1)SET user:1 value(json格式数据)
例如:
在这里插入图片描述
在这里插入图片描述
(2)MSET user:1:name zhuge user:1:balance 1888
例如:
在这里插入图片描述
在这里插入图片描述
可以看出redis可视化工具自动帮我们分配好了对象。

3.实现分布式锁
SETNX key value
例如:
实现商品库存的增减
在一些大型的商城中,一般会部署多个服务器:
在这里插入图片描述

一般减库存方法:
(1)查询商品id的库存
(2)减库存
(3)重新把减完剩余的库存更新回数据库
可能会出现的问题:
在查询库存和减库存中可能会出现并发问题,例如库存还剩1时,第一个进程查询到库存且还未开始进行减操作时,另一个进程也去查询库存,此时也是1,所以此时两个进程对库存进行相减可能会出现-1的情况。
解决思路:
进程1:SETNX product:10001(例如商品id为10001) true //返回1代表获取锁成功
进程2:SETNX product:10001(例如商品id为10001) true //返回0代表获取锁失败
在这里插入图片描述
。。。执行业务操作(即减库存)
DEL product:10001 //执行完业务释放锁
有时候怕执行业务操作中间出现异常直接挂掉而未释放掉锁,一般会给锁加个过期时间(expire key)
4.Web集群session共享
spring session +redis 实现session共享
例如:
可以把session信息存储到redis进行共享,需要就取出来进行判断是否登陆。
5.分布式系统全局序列号
INCRBY orderid 1000 //redis 批量生成序列号提升性能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值