首页 > 数据库 >你能说一下Redis的常见应用场景吗?

你能说一下Redis的常见应用场景吗?

时间:2023-03-25 18:24:03浏览次数:26  
标签:场景 Redis 常见 redis update value Set 数据

Redis是一个key-value型的数据库(相比较之下,MySQL是关联数据库),所有数据在使用时都存放在内存中。

这包含了两层含义:

  • 单台Redis能存放多少数据,取决于其内存的大小(假设所有内存都给Redis用)。如果需要存放更多数据,可以增加内存或做集群。
  • Redis支持将数据持久化到磁盘中。

但是,不会直接对磁盘进行读写。这种持久化,一般是用于在服务器重启时,先把数据持久化,重启后再从磁盘中读取到内存。

Redis支持五种数据结构,分别是String,List,Hash,Set,Zset。即字符串,列表,哈希,集合,有序集合。

String是Redis最基本的类型,一个key对应一个value

一般情况下,大部分的内容都可以通过序列化后,再存在到Redis中,比如图片或对象等。每个key对就的value存储的内容最大为512M。

Hash即哈希表,即key-value对集合

这种数据结构,特别适合存储对象。并且,Redis支持像数据库中update一样,单独修改对象的某个属性。

List即列表

value是一个字符串的列表。也就是说,一个value可以存放多个字符串,可以按照顺序,添加到头或尾。它就是一个双向链表。很适合做如朋友圈动态列表或消息队列等。

Set即集合

它的value和列表的value一样,也是一个字符串列表,只是Set是无序的,并且,value中的元素是不重复的。和Java中的Set差不多,它的基础原理也是基于Hash实现的,所以添加、删除、查找等的效率等都很快。Redis还为Set提供了多个集合操作的API,如交集、并集、差集等。可以利用来做统计,有多少个共同好友等。

Zset即有序集合

它在Set的基础上,给value中的每个字符串关联了一个score属性,即得分。Zset通过计算得分,将字符串进行从小到大的排序。字符串的得分可以相同。Zset的排序是在插入时直接就做好的。可以用来做排行榜等。

Redis常出现的应用场景

缓存——热数据

热点数据(经常会被查询,但是不经常被修改或者删除的数据),首选是使用redis缓存,相比于memcached提供了丰富的数据类型可以使用,另外,内存中的数据也提供了AOF和RDB等持久化机制可以选择,要冷、热的还是忽冷忽热的都可选。

结合具体应用需要注意一下:很多人用Spring的AOP来构建redis缓存的自动生产和清除,过程一般如下:

  • step1-> Select 数据库前查询redis,有的话使用redis数据,放弃select 数据库,没有就select 数据库,然后将数据插入redis;
  • srep2-> update或者delete数据库前,查询redis是否存在该数据,存在的话先删除redis中数据,然后再update或者delete数据库中的数据。

这种操作,如果并发量很小的情况下基本没问题,但是高并发的情况请注意下面场景:

为了update先删掉了redis中的该数据,这时候另一个线程执行查询,发现redis中没有,瞬间执行了查询SQL,并且插入到redis中一条数据,回到刚才那个update语句,这个线程压根不知道刚才那个select线程犯了一个弥天大错!于是这个redis中的错误数据就永远的存在了下去,直到下一个update或者delete。

计数器

 

标签:场景,Redis,常见,redis,update,value,Set,数据
From: https://www.cnblogs.com/xfeiyun/p/17254890.html

相关文章

  • 前端三剑客常见面试题及其答案
    前端的三剑客指的是HTML、CSS和JavaScript,下面是一些常见的前端三剑客面试题及其答案1、什么是HTML?HTML(超文本标记语言)是用来描述网页结构和内容的一种标记语言。它由一......
  • Redis服务部署
    服务器环境名称版本获取方式操作系统CentOSLinuxrelease7.9.2009(Core)CentOSVersionDownloads根据需求选择对应版本内存8GB硬件基础配置Redis......
  • 为什么要限制Redis Cluster集群规模
    RedisCluster能保存的数据量以及支撑的吞吐量,跟集群的实例规模密切相关。Redis官方给出了RedisCluster的规模上限,就是一个集群运行1000个实例。这里限制集群规模的......
  • Winform/Csharp中使用StackExchange.Redis连接Redis存取数据并序列化对象/反序列化(支
    场景在winform程序中,需要连接Redis并根据Key进行模糊搜索,对value值进行反序列化为对象之后进行数据处理和显示。ServiceStack.redis这里不使用servicestack.redis,因为......
  • 常见windows和linux的敏感目录
    Windows下:c:/boot.ini//查看系统版本c:/windows/php.ini//php配置信息c:/windows/my.ini//MYSQL配置文件,记录管理员登陆过的MYSQL用户名和密码c:/winnt/php.inic:......
  • 架构师学习--常见系统的性能最大量级,nginx,kafka,4个9等
    1、nginx负载均衡性能是3万左右,2、一般的Linux服务器上装一个Nginx大概能到5万/秒;3、LVS的性能是十万级,据说可达到80万/秒;4、而F5性能是百万级,从200万/......
  • 全面了解 Redis 高级特性,实现高性能、高可靠的数据存储和处理
    目录高性能、高可用、高可扩展性的原理持久化RDB持久化AOF持久化持久化的配置RDB配置AOF配置持久化的恢复RDB的恢复AOF的恢复RDB和AOF的选择持久化对性能的影响数据的丢失......
  • SAP Fiori 设计准则里的 Responsive 表格不太适合的场景介绍
    sap.m.Table是SAPFiori应用默认的响应式表格控件。在下列场合中,SAP不推荐大家使用ResponsiveTable.主要用例是从极少数项目中选择一项,而不查看其他详细信息。在......
  • Redis搭建稳定的集群
    @TOCredis集群搭建原理Redis集群的搭建当集群中超过或等于1/2节点不可用时,整个集群不可用。为了搭建稳定集群,都采用奇数节点。1,配置redis[]复制配置文件将/usr/local/re......
  • 视频编辑场景下的文字模版技术方案
    作者|Lok'tarogar导读本文根据度咔剪辑APP文字模版开发实践,分享视频编辑场景下,静态文字模版渲染能力的技术方案。作为富文本渲染方案的父集,此技术方案可以扩展到其他需要......