前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Redis入门

Redis入门

作者头像
用户5521279
发布2019-08-21 17:07:43
5790
发布2019-08-21 17:07:43
举报
文章被收录于专栏:搜狗测试搜狗测试

Redis入门

最近在学Redis,相信大家对Redis这个技术都有所耳闻,前段时间通过搜狗手机助手与合作方流量合作需求的测试过程中需要用到Redis,当时对Redis也是处于初级的了解阶段,想要学好Redis处于了解阶段是远远不够的,我们需要的就是系统的学习Redis。下面是我系统学习Redis的第一步,希望大家看完能有所收获。

1

Redis是什么?

First of all,让我们看看Redis官网是怎么做的自我介绍,像我一样英文不太好的小伙伴不要着急,使用翻译助手就会看懂Redis的个人简介,它是一个开源的,基于内存的数据结构存储,可用作数据库、缓存、消息中间件。 在这里有几个关键词需要重点理解:内存、数据结构、缓存,这样更能帮助我们学明白Redis。

2

为什么使用Redis?

为什么使用Redis呢?主要是两个原因:一是快,二是高并发。

(1)快的原因有:

1. Redis是纯内存操作,避免频繁读写IO浪费时间;

2. 单线程运行;

3. 采用了非阻塞IO多路复用机制。

(2)高并发:

在高并发的情况下,所有的请求直接访问数据库,数据库可能会出现连接异常,这个时候如果使用Redis做一个缓存操作,让用户请求先访问Redis而不是直接访问数据库。

这个时候就不得不提Redis是基于内存、并且存储方式是key-value的形式,也许学过Java的小伙伴就会有个疑问,作为缓存,Java中的Map容器的存储方式也是key-value,为什么不用Map呢?

看了下面这些可以帮你解除疑惑:

Java实现的Map是本地缓存,如果有很多个实例的话,每个实例都需要各自保存一份缓存,缓存不具有一致性。

Redis实现的是分布式缓存,如果有多个实例的话,每个实例都共享一份缓存,缓存具有一致性。

Java实现的Map不是专业做缓存的,JVM如果太大容易挂掉。一般用作于容器来存储临时数据,缓存的数据会随着JVM的销毁而结束。Map所存储的数据结构,无缓存过期机制。

Redis是专业做缓存的,可以用几十个G内存来做缓存。Redis一般用作于缓存,可以将缓存数据保存在硬盘中,Redis重启了之后可以将其恢复。原生提供丰富的数据结构、缓存过期机制等等简单好用的功能。

3

为什么Redis用于缓存?

其实用2张图,你就可以明白其中的道理:

  1. 首先是没有缓存的情况下,这个时候如果遇到高并发,

数据库就撑不住了 ,很容易出现性能问题,原因是数据库的读写是经过磁盘的,而磁盘的速度很慢。

  1. 有缓存的情况下,查询的数据先去缓存中判断,如果

有的话直接返回,没有的话再去数据库中查,这种方式不仅提高了性能,而且提高了高并发的能力。 提高性能的原因是,缓存查询速度快于数据库查询,内存的读写速度大于硬盘的读写速度提高高并发能力的原因是缓存分担了部分请求。

4

Redis数据类型

Redis支持五种数据类型:String(字符串),Hash(哈希),List(列表),Set(集合)及Zset(sorted set:有序集合)。

1)String

Stirng是Redis最基本的类型,一个key对应一个value,一个键最大能存储512MB,key值是二进制安全的,就意味着Redis的string可以包含任何数据,包括空字串。

2)Hash

Hash是一个键值对的集合,也就是key=>value,是一个string类型的field和value的映射表,很适合用于存储对象。

3)List

基于linked list 实现,双向无环链表。元素是字符串类型。元素头尾增删快,中间增删慢,增删元素是常态。元素可以重复出现。

4)Set

Set通过哈希表实现的。无序的,不可重复的(可去重)。

5)Zset

类似set集合,有序的,不可重复的。每一个元素都关联着一个浮点数分值(score),并按照分值从小到大的顺序排列集合中的元素,分值可以相同。

本次就记录这么多,下一次再细致的讲一下对于数据类型的使用方法。

希望大家能有所收获,一起进步、互相学习!

下面是我们的搜狗测试微信号以及QQ粉丝群,如果有任何问题,请及时联系我们。

搜狗测试微信号:Qa_xiaoming

搜狗测试QQ粉丝群:459645679

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-08-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 搜狗测试 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档