初识Redis_redis入门指南

初识Redis_redis入门指南初识Redis NoSQL是什么? 数据库: 用来存储数据的仓库 NoSQL: 不仅仅是SQL,是许多非关系型数据库的统称,但本质上还是存储数据的仓库 为什么需要NoSQL? 1. 解决了高并发的读写

初识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 统一的目的。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/9394.html

(0)
上一篇 2023-02-09
下一篇 2023-02-09

相关推荐

  • 一文讲清MySQL四种隔离级别[通俗易懂]

    一文讲清MySQL四种隔离级别[通俗易懂]mysql事务隔离级别 serializable 串行化(无问题) # 事务必须以顺序的方式执行,前一个事务提交之前后面的事务无法进行提交,最安全,但是不能并发操作,导致效率低下. repeatab

    2023-04-25
    200
  • 用Python打开文件夹

    用Python打开文件夹在日常工作和生活中,我们经常需要打开电脑里的各种文件夹来获取或创建文件。然而,我们可能需要打开的文件夹数量很大或者频繁地打开同一个文件夹。这时,手动打开文件夹会非常繁琐,影响效率。因此,有必要使用Python来打开文件夹。

    2024-07-13
    48
  • Python NumPy:二维数组用途及示例

    Python NumPy:二维数组用途及示例NumPy是Python中做科学计算必不可少的库之一,主要用于数组处理。在NumPy中有一种数据结构叫做二维数组,也叫做矩阵,是NumPy中最基础的数据结构之一。在本文中,我们将详细讲解二维数组的用途以及如何使用它们。

    2024-02-22
    98
  • 设置远程桌面连接 批量管理云服务器「建议收藏」

    设置远程桌面连接 批量管理云服务器「建议收藏」远程桌面是微软公司为了便于网络管理员管理维护服务器推出的一项服务。从windows 2000 server版本开始引入,网络管理员时候远程桌面连接器连接到网络任意一台开启了远程桌面控制功能的计算机上…

    2023-02-19
    158
  • Python字符串拼接函数的用法及示例

    Python字符串拼接函数的用法及示例在程序中,我们有时需要将多个字符串拼接在一起,以形成一个更长的、更具表现力的信息。Python字符串拼接是实现这一功能的重要工具。字符串拼接具有广泛的应用场景,例如数据报告的生成、核心算法的实现、根据用户输入动态生成URL等。在Python中,实现字符串拼接的方法有多种,其中最常用的就是使用“+”运算符实现,其基本语法如下:

    2024-04-04
    79
  • Android 原生 SQLite 数据库的一次封装实践[亲测有效]

    Android 原生 SQLite 数据库的一次封装实践[亲测有效]本文首发于 vivo互联网技术 微信公众号 链接: https://mp.weixin.qq.com/s/CL4MsQEsrWS8n7lhXCOQ_g 作者:Li Bingyan 本文主要讲述原生S…

    2023-04-04
    142
  • redis速度慢_数据库性能慢了

    redis速度慢_数据库性能慢了本篇为Redis性能问题诊断系列的第四篇,也是最后一篇,主要从应用程序、系统、服务器硬件及网络系统等层面上进行讲解,重点分享了哪些配置需要重点关注和调整优化,才能最大程度的发挥Redis的处理能力;

    2023-06-06
    148
  • mysql学习笔记之profiling分析[通俗易懂]

    mysql学习笔记之profiling分析[通俗易懂]要想有画一条query,就需要清楚这条query的性能瓶颈到底在哪里,mysql的profiler是一个使用非常方便的查询诊断分析工具,通过该工具可以获取一条查询在整个执行过程中多种资源的消耗情况,…

    2023-03-11
    148

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注