返回顶部
首页 > 资讯 > 数据库 >初识Redis
  • 794
分享到

初识Redis

初识Redis 2019-03-22 23:03:35 794人浏览 猪猪侠
摘要

初识Redis NoSQL是什么? 数据库: 用来存储数据的仓库 Nosql: 不仅仅是SQL,是许多非关系型数据库的统称,但本质上还是存储数据的仓库 为什么需要NoSQL? 解决了高并发的读写问题 解决了海量数据的高效率存储和

初识Redis

初识Redis

NoSQL是什么?

数据库: 用来存储数据的仓库

Nosql: 不仅仅是SQL,是许多非关系型数据库的统称,但本质上还是存储数据的仓库

为什么需要NoSQL?

  1. 解决了高并发的读写问题
  2. 解决了海量数据的高效率存储和访问问题
  3. 实现了高可用性及高可扩展性

Redis是什么?

是由C语言开发的一款开源的、高性能的键值对存储数据库。

它支持多种键值数据类型。包括字符串、列表、集合、散列、有序集合等。它内置复制、lua脚本、LRU收回、事务及不同级别磁盘持久化功能,同时通过Redis Sentinel实现高可用,Redis Cluster提供自动分区等相关功能。

Redis的特性

  1. 支持多种语言。c、java、c++
  2. 丰富的数据类型
  3. 多种数据结构,如哈希、集合、位图(多用于活跃用户数等统计)、HyperLogLog(超小内存唯一值计数,由于只有12kb,因而有误差)、GEO(地理位置信息)
  4. 读写速度快,性能高。官方给出的数据是:Redis 能读的速度是 110 000 次/s,写的速度是 81 000 次/s。之所以有这么快的读/写速度,是因为这些数据都存储在内存中。
  5. 支持持久化。Redis 的持久化也就是备份数据,它每隔一段时间就将内存中的数据保存在磁盘中,在重启的时候会再次加载到内存中,从而实现数据持久化。Redis 的持久化方式是 RDB 和 AOF。
  6. 简单且功能强大。如利用 Redis 可以实现消息订阅发布、Lua 脚本、数据库事务、Pipeline(管道,即当指令达到一定数量后,客户端才会执行)。同时 Redis 是单线程的,它不依赖外部库,它的所有操作都是原子性的,使用简单。
  7. 实现高可用主从复制,主节点做数据副本。
  8. 实现分布式集群和高可用。Redis Cluster 支持分布式,进而可以实现分布式集群;Redis Sentinel 支持高可用。

Redis的使用场景

  1. 缓存。这是 Redis 使用最多的场景。Redis 能够替代 Memcached。比如,实现数据查询、缓存新闻消息内容、缓存商品内容或购物车等。
  2. 做计数器应用。Redis 的命令具有原子性,它提供了 INCR、DECR、GETSET、INCRBY 等相关命令来构建计数器系统。可以使用 Redis 来记录一个热门帖子的转发数、评论数。通过 Redis 的原子递增,可以实现在任何时候封一个 IP 地址等。
  3. 实现消息队列系统。Redis 运行稳定,速度快,支持模式匹配,也可以实现消息订阅发布。Redis 还有阻塞队列的命令,能够让一个程序在执行时被另一个程序添加到队列中。比如,实现秒杀、抢购等。
  4. 做实时系统、消息系统。可以利用 Redis 的 set 功能做实时系统,来查看某个用户是否进行了某项操作,对其行为进行统计对比。也可以利用 Redis 的 Pub/Sub 构建消息系统,如在线聊天系统。
  5. 现排行榜应用。排行榜的实现利用了 Redis 的有序集合。比如,对上百万个用户的排名,采用其他数据库来实现是非常困难的,而利用 Redis 的 ZADD、ZREVRANGE、ZRANK 等命令可以轻松实现排名并获取排名的用户。
  6. 做数据过期处理。我们可以将 sorted set 的 score 值设置成过期时间的时间戳,然后通过过期时间排序,找出过期的数据进行删除。可以采用过期属性来确认一个关键字在什么时候应该被删除。也可以利用 UNIX 时间作为关键字,将列表按时间排序。对 currenttime 和 timeto_live 进行检索,查询出过期的数据,进而删除。
  7. 布式集群架构中的 session 分离。采用分布式集群部署,可以满足一个 WEB 应用系统被大规模访问的需要。而要实现分布式集群部署,就要解决 session 统一的问题。通常可以采用 Redis 来实现 session 共享机制,以达到 session 统一的目的。
您可能感兴趣的文档:

--结束END--

本文标题: 初识Redis

本文链接: https://lsjlt.com/news/5117.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • redis初识
    redis介绍 redis是什么 redis是一种基于键值对的NOsql数据库,与很多键值对数据库不同,redis中的值string,hash,list,set,zset,geo等多种数据机构和算法组成,因为redis会将所有的数...
    99+
    2015-08-13
    redis初识
  • 初识Redis
    初识Redis NoSQL是什么? 数据库: 用来存储数据的仓库 NoSQL: 不仅仅是SQL,是许多非关系型数据库的统称,但本质上还是存储数据的仓库 为什么需要NoSQL? 解决了高并发的读写问题 解决了海量数据的高效率存储和...
    99+
    2019-03-22
    初识Redis
  • Redis(一):初识Redis内存数据库与持久化
    什么是Redis内存数据库?Redis,本质上上一个KEY-VALUE类型的内存数据库,整个数据库都加载在内存当中进行操作,定期通过异步操作把数据库数据flush到硬盘上进行保存。因此它是纯内存操作,Red...
    99+
    2024-04-02
  • 初识Node.js
    1、Node.js是什么 [1]Node是一个服务器端 JavaScript 解释器,可是真的以为JavaScript不错的同学学习Node就能轻松拿下,那么你就错了,总结:水深不深我还不知道,不过确实不浅...
    99+
    2022-06-04
    Node js
  • 初识Android.bp
               初识Android.bp 前言    最近在捣鼓Android 9 和10的build系统,看到一篇比较好的博...
    99+
    2022-06-06
    Android
  • 初识EXPDP
    EXPDP介绍 使用dump文件集导入数据和元数据的工具。dump文件集只能被IMPDP导入。dump文件集是由表数据,数据库对象元数据,控制信息组成。由专用的二进制格式编写。这些dump文件由server...
    99+
    2024-04-02
  • 初识MySQL
    💕与其抱怨生活的不公,不如积极行动改变它。💕 🐼作者:不能再留遗憾了🐼 🎆专栏:MySQL学习🎆 &...
    99+
    2023-09-01
    mysql 数据库 postgresql
  • 初识Java
    一、Java语言概述 1.1 Java是什么 Java是一种优秀的程序设计语言,它具有令人赏心悦目的语法和易于理解的语义 不仅如此,Java还是一个有一系列计算机软件和规范形成的技术体系,这个技术体系提供了完整的用于软件开发和跨平台部署...
    99+
    2023-10-24
    java 开发语言
  • html初识
    web标准web准备介绍:w3c:万维网联盟组织,用来制定web标准的机构(组织)web标准:制作网页遵循的规范web准备规范的分类:结构标准、表现标准、行为标准。结构:html。表示:css。行为:Javascript。web准备总结:结...
    99+
    2023-01-30
    html
  • 初识django
    HTTP协议   超文本传输协议 四大特性:   1.基于TCP/IP作用在应用层上的协议   2.基于请求响应   3.无连接   4.无状态 数据格式之请求   请求首行   请求头(一堆k,v键值对)   /r/n   请求体 数据...
    99+
    2023-01-31
    django
  • 初识urllib
    使用urllibrequest:  是最基本的 HTTP 请求模块,可以用来模拟发送请求,只需要给库方法传入URL以及额外的参数,就可以模拟实现这个过程了。error:  异常处理模块,如果出现请求错误, 可以捕获这些异...
    99+
    2023-01-30
    urllib
  • 初识Tornado
    引言 回想Django的部署方式 以Django为代表的python web应用部署时采用wsgi协议与服务器对接(被服务器托管),而这类服务器通常都是基于多线程的,也就是说每一个网络请求服务器都会有一个对应的线程来用web应用(如Dja...
    99+
    2023-01-31
    Tornado
  • 初识Flask
    Flask简介       Flask是一个基于Python开发并且依赖jinja2模板和Werkzeug WSGI服务的一个微型框架,微框架中的“微”意味着 Flask 旨在保持核心简单而易于扩展。默认情况下,Flask 不包含数据库抽...
    99+
    2023-01-31
    Flask
  • Python初识
    1.python介绍 python是一门先编译后解释的语言 动态脚本语言 PyCodeObject和pyc文件 pyCodeObject是python编译器真正的编译成的结果。当python程序运行时,编译的结果是保存在位于内存中的PyCo...
    99+
    2023-01-31
    Python
  • 初识P3P
    Google 标签: P3P, 第三方cookie, 隐私策略, http head P3P主要应用于网站跨域访问方面,全称为隐私偏好设定平台(platform for privacy preference, P3P)。而谈到P3P就不得不...
    99+
    2023-01-31
    P3P
  • 初识Linux_3
    1,find 目录 条件 [处理命令]-默认是print操作2,find d6 -name "*cpp" -exec rm{} ";"(或者‘;’或者/;都是Ok的),这条命令的含义是找到d6文件夹中所有以.cpp结尾的文件然后将其进行删除...
    99+
    2023-01-31
  • 初识Python
      Python是一种面向对象的解释型计算机程序设计语言,由荷兰人Guido van Rossum于1989年发明,第一个公开发行版发行于1991年。  Python是纯粹的自由软件,源代码和解释器CPython遵循GPL(GNU Gene...
    99+
    2023-01-31
    Python
  • 初识 Python
    1.源码安装 ipython 1.2.1[root@Client-1]# tar -xf ipython 1.2.1.tar.gz[root@Client-1]cd ipython 1.2.1[root@Client-1 ipython-1...
    99+
    2023-01-31
    Python
  • SpringAOP初识——初学者向
    Spring中最重要的两个部分         1.IOC 控制反转         2.AOP面向切面编程       博主之前有一篇文章是关于SpringIOC的理解:关于SpringIOC的理解有需要的小伙伴可以自行跳转。      ...
    99+
    2023-08-31
    mybatis java mysql
  • 初始 redis
    官方定义: Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSIC语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月1...
    99+
    2016-06-01
    初始 redis
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作