Redis 数据类型及其使用场景 String 篇

String类型的基本操作

  • 添加/修改数据
    set key value
127.0.0.1:6379> set name zhangsan
OK
  • 获取数据
    get key
127.0.0.1:6379> get name
"zhangsan"
  • 删除数据
  127.0.0.1:6379> del name
  (integer) 1
  • 添加修改多个数据
mset name zhangsan age 20
  • 获取多个数据
127.0.0.1:6379> mget name age
1) "zhangsan"
2) "20"
  • 获取数据字符个数
127.0.0.1:6379> strlen name
(integer) 8
  • 在数据后面追加信息(存在就追加,不存在就创建)
127.0.0.1:6379> append name hehe
(integer) 12
127.0.0.1:6379> get name
"zhangsanhehe"
127.0.0.1:6379> 

String类型的扩展操作

随着应用运行中,我们的数据量会越来越大,我们不能让数据都在一张表里面,这样会影响数据库的查询效率,这个时候我们就需要把一张大表切割成多张小表,这就是在大中型应用中使用的基本操作,分表。但是将一张表分成多个表之后让它们自己控制自己的主键id自增肯定是不行的,比如会出现多个重复id的数据,这个时候可以使用redis来解决id重复的问题。

解决方案

  • 设置数据增加指定的值

      127.0.0.1:6379> set number 1
     OK
     127.0.0.1:6379> incr number
     (integer) 2
     127.0.0.1:6379> 
    

    string在redis内部存储默认是一个字符串,当遇到增/减,如incr/decr 等操作时会转换成数值进行运算,redis的所有操作都是原子性的,采用单线程执行所有任务,命令都是一个个执行的,无需考虑并发带来的影响

应用场景: 1.微信投票限制每个号码在10小时内只能投一次票。2.热门商品维持三天热门自动取消热门。

解决方案

  • 设置数据的生命周期

    Setex 命令为指定的 key 设置值及其过期时间。如果 key 已经存在, SETEX 命令将会替换旧的值。

SETEX KEY_NAME TIMEOUT VALUE

    127.0.0.1:6379> setex tel 60 13888888888
    OK
    127.0.0.1:6379> get tel
    "13888888888"
    127.0.0.1:6379> get tel  //等待60s
    (nil)
    127.0.0.1:6379> 
本作品采用《CC 协议》,转载必须注明作者和本文链接
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!