先给大家讲一个基本知识点:数据库分类大致分为两类,关系型数据库和非关系型数据库。如果详细区分的话,还可以继续分下去。

Redis不仅仅是缓存数据库

面试的时候,很多人会问,Redis和memcahce的区别?

memcache是一个纯缓存的键值数据库,而Redis是一个非关系型的数据库。

两者的差异较大,却仍然大部分的人问二者的区别?因为很多人对Redis的应用,主要是和memcache一样,作为键值缓存数据库来用的。

要知道,Redis不仅仅是缓存数据库,接下来,我们要深入Redis的应用场景,探寻它能为我们来解决什么样的问题。

6大Redis应用场景

1.缓存

缓存肯定是大家应用场景最多的一个方向,几乎现在所有的中大型网站,都用到了缓存。

合理的使用缓存不但能提高网页的访问速度,也能够降低后端数据库的压力。

根据数据类型和实际使用情况,设置灵活的键值过期策略,又可以保障数据的有效性,所以用在缓存的场合非常多。

2.计数器

好多不熟悉业务或者开发的运维同学可能会问,计数器究竟是什么?

我们可以通过我们实际的例子来说明,比如博主写了一篇博文,有多少人来浏览,51CTO都会有记录。

那么这个记录怎么来做,每次浏览的话,这个记录都会+1 ,当浏览人数太多的时候,或者文章基数较大的时候,每次都去数据库来操作读写这个数据,肯定对后端数据库会有较大的压力。

如果我们使用Redis的incr来实现这个功能,在内存中来计数,不但性能好,还可以减轻后端数据库的压力。所以是Redis!

3.排行榜

比如音乐或者某比赛排行榜,我们可以使用音乐名作为元素,使用播放次数作为分值。

如果使用Redis的zadd来实现这个功能,使用zrevrange 来按照分值获取前10名或者50名的歌曲,或者获取歌曲排名,都是操作比较容易的,试想一下这种范围取值,如果使用Mysql来操作,一般会全表扫描,对I/O、数据库都是压力,所以是Redis。

4.定位功能(3.2开始支持)

Redis的 GEO特性,我们可以通过提前输入具体的地理位置信息,经纬度一些主要内容,在使用时,可以快读定位到APP使用者的位置,以及位置之间的距离等。

5.简单的消息系统

在日常的应用开发中,消息队列的使用还是比较常见的,Redis也有阻塞队列的功能。能够让程序在执行时被另一个程序添加到队列。

6.交友

我们可以存储好友的信息,比如爱好、兴趣等,通过使用Set集合的差查找爱好不同,或者爱好相同的点,增加交友匹配度等。

当然,Redis的实际应用还远不止这些,既然这个数据库可以在我们实际的应用中,解决如此多的痛点问题,也有如此多的应用场景,那么肯定使用的公司一定比较多,为了提高我们自身的能力,或者竞争力,能够更好的解决或者运维好这一款数据库,我当然需要深入的去学习。

Redis最显著的优势

1.速度快

Redis的开发基于C语言实现,网络上使用epoll解决高并发的问题,单线程又避免不必要的上下文切换。C语言和贴近系统,数据又放在内存中。所以速度肯定快。

2.支持多种数据类型

Redis不仅仅是key - value的存在,还可以支持LIst、String、Hash、Set、Zset 数据类型,可以满足我们大部分的需求。

通过这个图呢,我们大致介绍了Redis的功能、场景、优点等信息。那么既然Redis在我们工作中,有这么多的地方可以用到,我们更应该需要深入的去学习和了解,方便我们在以后的工作中,更加的得心应手。基于以上的考虑,所以我讲解内容选择的时候: 所以是Redis。

接住这份Redis运维秘籍

1.总结知识点

《Redis运维秘籍》里,可以看到Redis在学习过程中重要的一些知识点,而不是通篇的按照Redis的官方文档来教科书式的宣读,我会把工作中常用的进行知识点的总结,只讲干货,不凑篇幅。

2.理论+实践

鲁迅先生说:“实践是检验真理的唯一标准”!我不但对底层知识、原理进行讲解和总结,也同时进行实战的操作,通过实际操作来验证这些理论,可以加深印象,也更方便我们的理解。

3.经验总结与分享

我将在实战和优化中,讲解本人实际在运用过程中使用的遇到的一些“坑”。满满的坑,当我们从坑里爬出来的时候,我们就是强者。

转自

51CTO https://mp.weixin.qq.com/s?__biz=MzAwMDEzNTc1Mw==&mid=2247484161&idx=1&sn=51319e81cd2f099b865a3d0f9e03e7e7&chksm=9aecc427ad9b4d3188efd105558a6ac0a2bfaf782f5777db903d830c37527a9675e2bf0eb700&mpshare=1&scene=23&srcid=03153ovLXgGHuWQ6tQgO89mH#rd

Redis和memcahce的区别【转】的更多相关文章

  1. Redis与Memcache的区别

    Redis与Memcache的区别 数据类型:  redis数据类型丰富,支持set liset等类型          memcache支持简单数据类型,需要客户端自己处理复杂对象 持久性: red ...

  2. Redis和Memcache的区别

    Redis和Memcache的区别 总结一: 1.数据类型 redis数据类型丰富,支持set liset等类型 memcache支持简单数据类型,需要客户端自己处理复杂对象 2.持久性 redis支 ...

  3. Redis与Memcached的区别

    传统MySQL+ Memcached架构遇到的问题 实际MySQL是适合进行海量数据存储的,通过Memcached将热点数据加载到cache,加速访问,很多公司都曾经使用过这样的架构,但随着业务数据量 ...

  4. 也谈谈 Redis 和 Memcached 的区别

    本文作者: 伯乐在线 - 朱小厮 . 说到redis就会联想到memcached,反之亦然.了解过两者的同学有那么个大致的印象: redis与memcached相比,比仅支持简单的key-value数 ...

  5. 【转载】Redis与Memcached的区别

    传统MySQL+ Memcached架构遇到的问题 实际MySQL是适合进行海量数据存储的,通过Memcached将热点数据加载到cache,加速访问,很多公司都曾经使用过这样的架构,但随着业务数据量 ...

  6. (转)Redis与Memcached的区别

    如果简单地比较Redis与Memcached的区别,大多数都会得到以下观点: 1 Redis不仅仅支持简单的k/v类型的数据,同时还提供list,set,hash等数据结构的存储. 2 Redis支持 ...

  7. Redis 与 Memcached 的区别

    [转]Redis 与 Memcached 的区别 传统 MySQL + Memcached 架构遇到的问题     实际上 MySQL 是适合进行海量数据存储的,通过 Memcached 将热点数据加 ...

  8. Redis和Memcached的区别【转】

    如果简单地比较Redis与Memcached的区别,大多数都会得到以下观点:1 Redis不仅仅支持简单的k/v类型的数据,同时还提供list,set,hash等数据结构的存储.2 Redis支持数据 ...

  9. Redis与Memocache的区别

    转载地址:http://gnucto.blog.51cto.com/3391516/998509 Redis与Memcached的区别 传统MySQL+ Memcached架构遇到的问题 实际MySQ ...

随机推荐

  1. VMware安装CentOS 6.9教程

    CentOS(Community Enterprise Operating System,中文意思是:社区企业操作系统)是Linux发行版之一,它是来自于Red Hat Enterprise Linu ...

  2. JDK1.8源码(八)——java.util.HashSet 类

    在上一篇博客,我们介绍了 Map 集合的一种典型实现 HashMap ,在 JDK1.8 中,HashMap 是由 数组+链表+红黑树构成,相对于早期版本的 JDK HashMap 实现,新增了红黑树 ...

  3. codeforces#1132 F. Clear the String(神奇的区间dp)

    题意:给出一个字符串S,|S|<=500.每次操作可以删除一段连续的相同字母的子串.问,最少操作多少次可以把这个字符串变成空串. 分析:刚开始的思路是,把连续的串给删除掉,然后再....贪心.完 ...

  4. 控制结构(3): 状态机(state machine)

    // 上一篇:卫语句(guard clause) // 下一篇:局部化(localization) 基于语言提供的基本控制结构,更好地组织和表达程序,需要良好的控制结构. 前情回顾 上次分析了guar ...

  5. mybatis 使用接口绑定

    使用selectList,selectOne..的缺陷 刚开始学习mybatis的时候,使用selectList或者selectOne,传入要调用的mapper,如果又参数要传递的话,就需要将参数进行 ...

  6. 计算机网络基础知识-OSI七层协议模型

    一.物理层 物理层主要规定了物理设备的标准,如网线的类型.光纤的接口类型.各种传输介质的传输速率,物理层的数据以比特流(二进制)的形式存在,传输时将比特流转化为电流强弱,达到目的地之后再转化为比特流. ...

  7. SSM项目使用GoEasy 实现web消息推送服务

      一.背景 之前项目需要做一个推送功能,最开始我用websocket实现我的功能.使用websocket的好处是免费自主开发,但是有几个问题:1)浏览器的兼容问题,尤其是低版本的ie:2)因为是推送 ...

  8. 前端cookie操作用到的一些小总结

    前后端完全分离的是目前web开发的大趋势,包括现下流行的前端框架的应用vue,angular,在不同页面跳转时,前端需要对用户登录状态进行判断,拿到用户的id,除了Ajax从服务器端获取数据外,对co ...

  9. Java BitSet使用场景和示例

    一.什么是BitSet? 注:以下内容来自JDK API: BitSet类实现了一个按需增长的位向量.位Set的每一个组件都有一个boolean值.用非负的整数将BitSet的位编入索引.可以对每个编 ...

  10. JS快速排序 希尔排序 归并排序 选择排序

    /* 快速排序 1.1 算法描述 快速排序由于排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采用,再加上快速排序思想----分治法也确实实用.快速排序是一种既不浪费空间又可以快一 ...