专栏首页Java编程指南为什么要使用redis数据库?它有哪些妙用?

为什么要使用redis数据库?它有哪些妙用?

redis简介 :

redis是Nosql数据库中使用较为广泛的非关系型内存数据库,redis内部是一个key-value存储系统。它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set –有序集合)和hash(哈希类型,类似于Java中的map)。Redis基于内存运行并支持持久化的NoSQL数据库,是当前最热门的NoSql数据库之一,也被人们称为数据结构服务器。

互联网时代背景下大机遇,什么要使用Nosql?

1) 当数据量的总大小一个机器放不下时。

2) 数据索引一个机器的内存放不下时。

3) 访问量(读写混合)一个实例放不下时。

单机时代模型

如果每次存储成千上万条数据,这样很会导致mysql的性能很差,存储以及读取速度很慢,然后就演变成缓存+mysql+垂直拆分的方式。

Cache作为中间缓存

将所有的数据先保存到缓存中,然后再存入mysql中,减小数据库压力,提高效率。 但是当数据再次增加到又一个量级,上面的方式也不能满足需求,由于数据库的写入压力增加,Memcached只能缓解数据库的读取压力。读写集中在一个数据库上让数据库不堪重负,大部分网站开始使用主从复制技术来达到读写分离,以提高读写性能和读库的可扩展性。Mysql的master-slave模式成为这个时候的网站标配了。

主从分离模式

在redis的高速缓存,MySQL的主从复制,读写分离的基础之上,这时MySQL主库的写压力开始出现瓶颈,而数据量的持续猛增,由于MyISAM使用表锁,在高并发下会出现严重的锁问题,大量的高并发MySQL应用开始使用InnoDB引擎代替MyISAM。

分表分库模式

将变化小的、业务相关的放在一个数据库,变化多的,不相关的数据放在一个数据库。

nosql数据库的优势

1)易扩展

这些类型的数据存储不需要固定的模式,无需多余的操作就可以进行横向的扩展。相对于关系型数据库可以减少表和字段特别多的情况。也无型之间在架构的层面上带来了可扩展的能力

2)大数据量提高性能

3)多样灵活的数据模型

在nosql中不仅可以存储String,hash,set、Zset等数据类型,还可以保存javaBean以及多种复杂的数据类型。

4、 NoSql的应用

1) 大数据时代淘宝、微信、以及微博等都广泛的使用了redis数据库,将一些固定不变的数据例如学校,区域等固定的信息保存在关系型数据库中。然后对于经常变化的数据例如淘宝每个节日都会有比较热门的搜索显示在搜索框,当节日过去关键字自动删除,为了便于管理,可以将这些数据保存在redis数据库中,并设置过期时间,到达时间就自动删除。

2)为了缓解数据库压力,微博首先将发送的微博保存到redis数据库,自己可以立即查看到,然后将内存中的数据同步到关系型数据库。

redis能做什么:

  • 缓存(数据查询、短连接、新闻内容、商品内容等等)。(最多使用)
  • 分布式集群架构中的session分离。
  • 聊天室的在线好友列表。
  • 任务队列。(秒杀、抢购、12306等等)
  • 应用排行榜。
  • 网站访问统计。
  • 数据过期处理(可以精确到毫秒)

本文分享自微信公众号 - Java编程指南(JavaXxzyfx),作者:Java编程指南

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-07-23

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • MySQL数据库优化的八种方式(经典必看)

    MySQL可以很好的支持大数据量的存取,但是一般说来,数据库中的表越小,在它上面执行的查询也就会越快。因此,在创建表的时候,为了获得更好的性能,我们可以将表中字...

    Java编程指南
  • 谈谈mysql的悲观和乐观锁 - 周伯通的麦田 - 博客园

    悲观锁与乐观锁是两种常见的资源并发锁设计思路,也是并发编程中一个非常基础的概念。之前有写过一篇文章关于并发的处理思路和解决方案,这里我单独将对这两种常见的锁机制...

    Java编程指南
  • java8新特性详解(一)

    java8已经出了很久,项目中也在使用。其最重要的特性就是Lambda表达式和函数式编程,这让我们的代码可以大大简化,更加优雅。

    Java编程指南
  • 数据库使用的隐藏技巧

    我们使用的很多数据库,其实数据库里面的所有内容都是分析好的。我们在使用数据库的时候,其实就是在所有的结果里面去寻找我们想要的数据结果。类似于一个检索的功能。而这...

    匹咔球
  • 中国人民大学教授杜小勇:One Size Does not Fit All?

    2019数据技术嘉年华于11月16日在京落下了帷幕。大会历时两天,来自全国各地上千名学术精英、数据库领袖人物、数据库专家、技术爱好者在这里汇聚一堂,围绕“开源 ...

    数据和云
  • NoSQL(MongoDB,Hbase,Redis)介绍

      NoSQL,泛指非关系型的数据库,随着互联网的发展传统的关系型数据库面对持续增长的数据处理起来显得越来越力不从心,此时非关系型数据库应运而生。

    用户4919348
  • 【直播预告】揭秘MySQL的数据类型

    点击上方蓝字每天学习数据库 ---- 【直播课程】由腾讯云数据库产品团队的主要技术负责人、中国计算机行业协会开源数据库专业委员会副会长刘迪(迪B哥)担任讲师,...

    腾讯云数据库 TencentDB
  • 【腾讯云的1001种玩法】十分钟轻松搞定云架构 · 数据库的主备 双活 读写分离

    主备是指我们在使用数据库时,同时有主数据库和备数据库,主数据库主要提供服务,备数据库以备不时之需。为什么数据库应该做主备机?数据库的读写分离又到底有什么好处?今...

    白宦成
  • java数据库操作

    数据库访问几乎每一个稍微成型的程序都要用到的知识,怎么高效的访问数据库也是我们学习的一个重点,今天的任务就是总结java访问数据库的方法和有关API,java访...

    企鹅号小编
  • 战略升级!腾讯云数据库五大新品重磅发布

      8月28日,腾讯云数据库在京正式启动战略升级发布会。 未来,腾讯云数据库将聚焦云原生、自治、超融合三大战略方向,并且面向全球用户同步发布五大战略级新品:...

    腾讯数据库技术

扫码关注云+社区

领取腾讯云代金券