首页
学习
活动
专区
圈层
工具
发布

点赞功能,用 MySQL?还是 Redis!

2.1 mysql方案 mysql方案, 随着nosql的流行,大数据的持续热点,但是mysql仍然不可替代,对于大多数的中小项目,低于千万级的数据量,采用mysql分表+cache,是完全可以胜任的,...数据量不大的时候,这种设计基本可以满足需求了, 缺点: 数据量大时,一张表在查询时压力巨大,需要分表,而不论用post_id还是user_id来hash分表都与我们的需求有冲突,唯一的办法就是做两个表冗余...为什么一般都选择redis, redis作为流行的nosql,有着丰富的数据类型,可以适应多个场景的需求。 采用redis有两种用途,一种是storage,一种是纯cache,需要+mysql一起。...上面使用string存储的用户点赞数量,除了string,还可以用hash来存储,对文章id分块,每100个存到一个hash,分别存入hash table,每个文章id为hash的一个key,value...存储点赞的用户id,如果点赞用户很多,避免id过多产生性能问题,可以单列出来,用sorted set结构保存,热点的毕竟是少数。

2.5K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    点赞功能,用 MySQL 还是 Redis ?

    2.1 mysql方案 mysql方案, 随着nosql的流行,大数据的持续热点,但是mysql仍然不可替代,对于大多数的中小项目,低于千万级的数据量,采用mysql分表+cache,是完全可以胜任的,...2.2 redis方案 当数据量达到上亿的量,上cache是必经的阶段,由于点赞这种动作很随意,很多人看到大拇指就想点,所以数据量增长很快,数据规模上来后,对mysql读写都有很大的压力,这时就要考虑memcache...为什么一般都选择redis, redis作为流行的nosql,有着丰富的数据类型,可以适应多个场景的需求。 采用redis有两种用途,一种是storage,一种是纯cache,需要+mysql一起。...上面使用string存储的用户点赞数量,除了string,还可以用hash来存储,对文章id分块,每100个存到一个hash,分别存入hash table,每个文章id为hash的一个key,value...存储点赞的用户id,如果点赞用户很多,避免id过多产生性能问题,可以单列出来,用sorted set结构保存,热点的毕竟是少数。

    1.6K30

    点赞功能,你用 MySQL 还是 Redis ?

    方案 2.1 mysql方案 mysql方案, 随着nosql的流行,大数据的持续热点,但是mysql仍然不可替代,对于大多数的中小项目,低于千万级的数据量,采用mysql分表+cache,是完全可以胜任的...缺点: 数据量大时,一张表在查询时压力巨大,需要分表,而不论用post_id还是user_id来hash分表都与我们的需求有冲突,唯一的办法就是做两个表冗余。...为什么一般都选择redis, redis作为流行的nosql,有着丰富的数据类型,可以适应多个场景的需求。 采用redis有两种用途,一种是storage,一种是纯cache,需要+mysql一起。...上面使用string存储的用户点赞数量,除了string,还可以用hash来存储,对文章id分块,每100个存到一个hash,分别存入hash table,每个文章id为hash的一个key,value...存储点赞的用户id,如果点赞用户很多,避免id过多产生性能问题,可以单列出来,用sorted set结构保存,热点的毕竟是少数。

    1.1K40

    MySQL 保存日期,用哪种数据类型合适?datetime?timestamp?还是 int?

    日期算是我们在日常开发中经常用到的数据类型,一般来说一张表都有 createTime 和 updateTime 字段,MySQL 中针对日期也提供了很多种不同的数据类型,如: datetime timestamp...官网的内容: 可以看到,MySQL5.6.4 是一个分水岭: 在 MySQL5.6.4 之前,DATETIME 固定占用 8 个字节。...时区的问题一定要谨慎,不过时区问题也并非一定要在数据库中解决,也可以在前端或者服务端用代码处理下。...用 int 保存时间的话,当我们需要进行日期排序以及按照日期范围查询的时候,就变成了普通的数字比较了,那么效率肯定是杠杠滴。...好啦,小伙伴们留言说说你日常开发日期用的哪种类型呢?出于什么样的考虑用了该类型?

    3.4K20

    杨老师课堂之JavaEE三大框架Hibernate入门第一课

    创建WEB工程,引入Hibernate开发所需要的jar包 * MySQL的驱动jar包 * Hibernate开发需要的jar包(资料/hibernate-release-5.0.7....#hibernate.connection.driver_class com.mysql.jdbc.Driver #hibernate.connection.url jdbc...创建WEB的项目,导入了开发的jar包 * MySQL驱动包、Hibernate开发的必须要有的jar包、日志的jar包 4. 编写JavaBean,以后不使用基本数据类型,使用包装类 5....* Hibernate的数据类型 type="string" * Java的数据类型 type="java.lang.String" * 数据库字段的数据类型...=com.mysql.jdbc.Driver * 缺点 * 不能加载映射的配置文件,需要手动编写代码去加载 * 第二种方式是XML文件的形式,开发基本都会选择这种方式

    78510

    Hibernate快速入门之CRUD

    比如,Java是面向对象的语言,MySQL是关系型数据库,ORM框架就是将这两者进行映射。...在MySQL数据库中,他们的关系则是通过主外键关联关系来维护的。 ? ORM框架就是将这两种不同的维护方式进行映射,让开发者可以用面向对象的思想来进行数据库的增删改查操作。...当下主流的ORM框架除了Hibernate,还有Mybatis。 ORM框架是一个概念,Hibernate和Mybatis是具体的产品,他们之间的关系如同数据库和MySQL,Oracle的关系。...代码: 了解完Hibernate的基本概念,接下来讲解如何使用。 简单分为五个步骤: 1.导入相关jar包(两组jar包,一组Hibernatejar包,一组MySQL驱动jar包)。...id标签用来配置主键映射: name是实体类的属性名,type配置该属性对应的数据类型。 column标签的name属性是表的字段名。

    1.1K20

    day29_Hibernate学习笔记_01

    :mysql://localhost:3306/day29         数据类型的包装类型(因为基本数据类型有默认值,会给数据库造成误会)。 不要用final修饰实体(否则将无法生成代理对象,进行优化)。...关系数据库用主键区分同一条记录。 Hibernate使用OID来建立内存中的对象和数据库中记录的对应关系。 结论: 对象的OID和数据库的表的主键对应。...6.4、基本数据与包装类型 基本数据类型和包装类型对应hibernate的映射类型相同。 基本类型无法表达null、数字类型的默认值为0。 包装类默认值是null。...6.5、类型对应 如下表所示: Java数据类型 Hibernate数据类型 标准SQL数据类型(对于不同的DB可能有所差异) byte、java.lang.Byte byte TINYINT short

    2K20

    【Java报错已解决】org.hibernate.TypeMismatchException

    由于类型不匹配,Hibernate无法正确地将String值转换为Date类型,从而抛出异常。 数据类型转换异常:Hibernate在处理实体类和数据库之间的数据交互时,依赖于类型映射机制。...检查Hibernate的配置文件和实体类的注解配置,确认是否存在错误的类型映射或其他相关配置问题。 若涉及到自定义的数据类型,检查是否有相应的类型转换器,并确保其功能正常。...不同的数据库(如MySQL、Oracle、PostgreSQL等)有不同的方言,选择正确的方言可以确保Hibernate正确地处理数据类型。...例如,如果使用MySQL,应该设置为org.hibernate.dialect.MySQLDialect。如果方言设置错误,可能会导致Hibernate对数据类型的解析出现问题。...检查其他与类型映射相关的配置参数。例如,如果使用了自定义的类型映射或者数据类型解析策略,要确保这些配置正确。

    1.1K00

    2019BATJ面试题详解:MyBatis+MySQL+Spring+Redis+多线程

    JdbcTemplate 使用Spring通过什么方式访问Hibernate? 如何通过HibernateDaoSupport将Spring和Hibernate结合起来?...Spring面向切面编程(AOP) 解释AOP Aspect 切面 在Spring AOP 中,关注点和横切关注的区别是什么? 什么是引入?什么是目标对象?什么是代理? 有几种不同类型的自动代理?...Redis支持哪几种数据类型? Redis主要消耗什么物理资源? Redis的全称是什么? Redis有哪几种数据淘汰策略? Redis集群方案应该怎么做?都有哪些方案?...简述Mybatis的Xml映射文件和Mybatis内部数据结构之间的映射关系? MySQL ?...MYSQL支持事务吗? mysql里记录货币用什么字段类型好 Mysql中有哪几种锁? MYSQL数据库服务器性能分析的方法命令有哪些? ? 多线程 多线程有什么用?

    1.2K20

    2019BATJ面试题汇总详解:MyBatis+MySQL+Spring+Redis+多线程

    JdbcTemplate 使用Spring通过什么方式访问Hibernate? 如何通过HibernateDaoSupport将Spring和Hibernate结合起来?...Spring面向切面编程(AOP) 解释AOP Aspect 切面 在Spring AOP 中,关注点和横切关注的区别是什么? 什么是引入?什么是目标对象?什么是代理? 有几种不同类型的自动代理?...Redis支持哪几种数据类型? Redis主要消耗什么物理资源? Redis的全称是什么? Redis有哪几种数据淘汰策略? Redis集群方案应该怎么做?都有哪些方案?...简述Mybatis的Xml映射文件和Mybatis内部数据结构之间的映射关系?...mysql里记录货币用什么字段类型好 Mysql中有哪几种锁? MYSQL数据库服务器性能分析的方法命令有哪些多线程 多线程有什么用?

    1.2K20

    2019BATJ面试题汇总详解:MyBatis+MySQL+Spring+Redis+多线程

    JdbcTemplate 使用Spring通过什么方式访问Hibernate? 如何通过HibernateDaoSupport将Spring和Hibernate结合起来?...Spring面向切面编程(AOP) 解释AOP Aspect 切面 在Spring AOP 中,关注点和横切关注的区别是什么? 什么是引入?什么是目标对象?什么是代理? 有几种不同类型的自动代理?...Redis支持哪几种数据类型? Redis主要消耗什么物理资源? Redis的全称是什么? Redis有哪几种数据淘汰策略? Redis集群方案应该怎么做?都有哪些方案?...简述Mybatis的Xml映射文件和Mybatis内部数据结构之间的映射关系?...mysql里记录货币用什么字段类型好 Mysql中有哪几种锁? MYSQL数据库服务器性能分析的方法命令有哪些? 多线程 多线程有什么用?

    1.4K00

    连Hibernate技术都不清楚,你敢说你自己会ORM框架?

    Hibernate能够将Java对象通过映射的关系映射到数据库 Hibernate能够将数据库的数据通过映射关系映射到Java对象 ❞ Hibernate就是能够通过操作Java对象来达到操作数据库的一门技术...--驱动程序--> hibernate.connection.driver_class">com.mysql.jdbc.Driver...--方言 表示的是告诉Hibernate框架当前 你要生成那个数据库下的SQL语句--> hibernate.dialect">org.hibernate.dialect.MySQL5Dialect...--方言 表示的是告诉Hibernate框架当前 你要生成那个数据库下的SQL语句--> org.hibernate.dialect.MySQL5Dialect...type:类型(写的是JAVA中数据类型的全路径) 注意:类型可以省略:省略之后的类型就和实体中的类型保持一致

    1K20

    全网最详细的Mybatis介绍和基本使用

    数据库操作框架的历程 JDBC JDBC(Java Data Base Connection,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java...名字 解释 ORM 对象关系映射 object java对象 relational 关系型数据 mapping 映射 Hibernate介绍 Hibernate 是由 Gavin King 于 2001...Hibernate将Java 类映射到数据库表中,从 Java 数据类型中映射到 SQL 数据类型中,并把开发人员从95% 的公共数据持续性编程工作中解放出来。...Hibernate 是传统 Java 对象和数据库服务器之间的桥梁,用来处理基于 O/R 映射机制和模式的那些对象。...Hibernate 优势 Hibernate 使用 XML 文件来处理映射 Java 类别到数据库表格中,并且不用编写任何代码。

    81200
    领券