1、什么是Redis

Redis是一款内存高速缓存数据库。Redis全称为:Remote Dictionary Server (远程数据服务),使用C语言编写,Redis是一个key-value存储系统(键值存储系统),支持丰富的数据类型,如:String、list、set、zset、hash。
Redis 是当前互联网世界最为流行的 NoSQL(Not Only SQL)数据库。NoSQL 在互联网系统中的作用很大,因为它可以在很大程度上提高互联网系统的性能。
Redis 具备一定持久层的功能,也可以作为一种缓存工具。对于 NoSQL 数据库而言,作为持久层,它存储的数据是半结构化的,这就意味着计算机在读入内存中有更少的规则,读入速度更快。
对于那些结构化、多范式规则的数据库系统而言,它更具性能优势。作为缓存,它可以支持大数据存入内存中,只要命中率高,它就能快速响应,因为在内存中的数据读/写比数据库读/写磁盘的速度快几十到上百倍,其作用如下图所示。

2、Redis特点

(1)Redis以内存作为数据存储介质,读写数据的效率极高。

(2)Redis跟memcache不同的是,储存在Redis中的数据是持久化的,断电或重启,数据也不会丢失。

(3)Redis的存储分为内存存储、磁盘存储和log文件。

(4)Redis可以从磁盘重新将数据加载到内存中,也可以通过配置文件对其进行配置,因此,redis才能实现持久化。

(5)Redis支持主从模式,可以配置集群,更利于支撑大型的项目。

3、Redis应用场景,能做什么

众多语言都支持Redis,因为Redis交换数据快,在服务器中常用来存储一些需要频繁调取的数据,节省内存开销,也极大的提升了速度。
将一些热点数据存储到Redis中,要用的时候,直接从内存取,极大的提高了速度和节约了服务器的开销。
1、会话缓存(最常用)
2、消息队列(支付)
3、活动排行榜或计数
4、发布,订阅消息(消息通知)
5、商品列表,评论列表

4、Redis数据类型

Redis一共支持五种数据类型:String(字符串)、hash(哈希)、list(列表)、set(集合)和zset(sorted set有序集合)
String(字符串):Redis最基本的数据类型,一个键对应一个值,一个键值最大存储512MB
Hash(哈希):hash是一个键值对的集合,是一个String类型的field和value的映射表,适合用于存储对象
List(列表):是redis的简单的字符串列表,按插入顺序排序
Set(集合):是String字符串类型的无序集合,也不可重复
ZSet(sorted set 有序集合)是String类型的有序集合,也不可重复。有序集合中的每个元素都需要指定一个分数,根据分数对元素进行升序排序。

5、Redis的优点

1)响应快速
Redis 响应非常快,每秒可以执行大约 110 000 个写入操作,或者 81 000 个读操作,其速度远超数据库。如果存入一些常用的数据,就能有效提高系统的性能。

2)支持 6 种数据类型
它们是字符串、哈希结构、列表、集合、可排序集合和基数。比如对于字符串可以存入一些 Java 基础数据类型,哈希可以存储对象,列表可以存储 List 对象等。这使得在应用中很容易根据自己的需要选择存储的数据类型,方便开发。
对于 Redis 而言,虽然只有 6 种数据类型,但是有两大好处:一方面可以满足存储各种数据结构体的需要;另外一方面数据类型少,使得规则就少,需要的判断和逻辑就少,这样读/写的速度就更快。

3)操作都是原子的
所有 Redis 的操作都是原子的,从而确保当两个客户同时访问 Redis 服务器时,得到的是更新后的值(最新值)。在需要高并发的场合可以考虑使用 Redis 的事务,处理一些需要锁的业务。

4)MultiUtility 工具
Redis 可以在如缓存、消息传递队列中使用(Redis 支持“发布+订阅”的消息模式),在应用程序如 Web 应用程序会话、网站页面点击数等任何短暂的数据中使用。

正是因为 Redis 具备这些优点,使得它成为了目前主流的 NoSQL 技术,在 Java 互联网中得到了广泛使用。

一方面,使用 NoSQL 从数据库中读取数据进行缓存,就可以从内存中读取数据了,而不像数据库一样读磁盘。现实是读操作远比写操作要多得多,所以缓存很多常用的数据,提高其命中率有助于整体性能的提高,并且能减缓数据库的压力,对互联网系统架构是十分有利的。

另一方面,它也能满足互联网高并发需要高速处理数据的场合,比如抢红包、商品秒杀等场景,这些场合需要高速处理,并保证并发数据安全和一致性。

Redis作用,适用场景,数据类型相关推荐

  1. Redis的五种数据类型及应用场景

    1,数据类型 String(字符串,整数,浮点数):做简单的键值对缓存 List(列表):储存一些列表类型的数据结构 Set(无序集合):交集,并集,差集的操作 Hash(包含键值对的无序散列表):结 ...

  2. redis的使用场景和基本数据类型

    一:redis使用的场景 redis是一个高性能的NoSQL数据库,特点是高性能,持久存储,适应高并发的应用场景. 下面看看它的使用场景 1.取最新N个数据的操作 比如取网站的最新文章,通过下面方式, ...

  3. redis 作用和应用场景等总结篇

    目录 一.什么是redis 二.应用场景 三.优点 四.redis持久化的几种方式 五.memecache和redis的区别 六.redis 常见的性能问题以及解决方案 七.redis 如何做内存优化 ...

  4. Redis入门(2):五大数据类型(key,string,list,set,sortset)将其实战,配置文件详解,发布与订阅

    五大数据类型 redis常见数据类型操作命令:http://www.redis.cn/commands.html Redis键(key) 命令 描述 keys * 查看当前库所有key (匹配:key ...

  5. Redis源码-String:Redis String命令、Redis String存储原理、Redis String三种编码类型、Redis字符串SDS源码解析、Redis String应用场景

    Redis源码-String:Redis String命令.Redis String存储原理.Redis String三种编码类型.Redis字符串SDS源码解析.Redis String应用场景 R ...

  6. 【redis-02】redis的五种数据类型和对应的操作方法,补充RedisUtil模板

    [redis-02]redis的五种数据类型和对应的操作方法,补充RedisUtil模板 [一]redis的五种数据类型 [二]String:字符串常用命令 (1)String基本信息 (2)Stri ...

  7. Redis:基础、数据类型和版本区别(持续更新)

    Redis:基础.数据结构和版本区别 Redis:基础 Redis:数据类型 String(字符串) List(列表) Hash(哈希) Set(无序集合) ZSet(有序集合sorted set) ...

  8. SpringBoot:整合Redis(概述,数据类型,持久化,RedisTemplate)

    1,Redis概述 1.1,Redis基本概念 在传统的Java Web项目中,使用数据库进行存储数据,但是有一些致命的弊端,这些弊端主要来自于性能方面.比如一些商品抢购的场景,或者是主页访问量瞬间较 ...

  9. Redis五种基本数据类型底层详解(原理篇)

    Redis五种基本数据类型底层详解 详细介绍Redis用到的数据结构 简单动态字符串 SDS和C字符串的区别 总结 链表 字典 哈希表 字典 哈希算法 解决键冲突 rehash(重点) 渐进式reha ...

最新文章

  1. python数据框 命名_Python-根据列值将数据框分为多个数据框,并用这些值命名 - python...
  2. 人脸识别门禁在安防行业的发展前景
  3. 033_使用ArrayDeque模拟队列结构
  4. 011 smali语法详解
  5. 【GIF动画+完整可运行源代码】C++实现 快速排序——十大经典排序算法之六
  6. SQL利用Case When Then多条件判断
  7. 工具资源系列之给虚拟机装个windows
  8. NEC向格鲁吉亚提供基于面部识别技术的城市监控系统
  9. jsp+php 服务器环境,Windows下Apache+Tomcat+jsp+php的服务器整合配置
  10. .net @什么意思_.NET和F#周报2019-4 各地微软技术俱乐部汇总 ML.NET 0.10
  11. 量子计算机慕课,计算机组成原理-中国大学mooc-题库零氪
  12. podman加速器Harbor
  13. 超好玩的硬币游戏,你会玩吗?
  14. LockSupport 是什么?怎么用?
  15. linuxping百度未知的名称或服务_有赞怎么打通百度小程序?开通有什么好处?
  16. 一种快速锁定的 Fractional PLL 设计
  17. AI把关啤酒质量 省钱又靠谱!
  18. 搭建数据指标体系(抖音)
  19. 《Applied Energy》期刊介绍(SCI 1区)
  20. JAVA基础知识总结:一到二十二全部总结

热门文章

  1. CASS11.0又双叒更新了,增加一些实用功能,免狗支持2010-2022
  2. Magento微信登陆模块 / Magento微信联合登陆 / 支持Magento 1.9.X
  3. Java 实现双色球的彩票功能。规则:从33个红球中随机选择不重复的6个数,从16个蓝球中随机选择1个组成一注彩票。可以选择买多注。
  4. 关于npm包bin配置和全局包软连接
  5. Java对象与XML、Excel、TXT文件相互转换
  6. 进程同步与互斥c语言实验,操作系统进程同步与互斥实验报告.doc
  7. Python数据结构之链表
  8. fclk if总线_Ryzen2超频设置的前置作业、基本思路与各种模式的好坏。
  9. 实现单选(radio)和多选(checkbox)自定义选择样式
  10. NC数据库字段扩展长度