博客
关于我
redis入门综合概要介绍
阅读量:654 次
发布时间:2019-03-15

本文共 2166 字,大约阅读时间需要 7 分钟。

Redis入门综合概要介绍

Redis是一个高性能的开源数据库,支持多种数据结构的存取操作,且具有高效的内存置备和数据持久化机制。它作为一种增强版的哈希表,能够以毫秒级响应处理海量数据操作,广泛应用于缓存、数据 middleWare、实时系统等多个领域。本文将从概述、应用场景、数据结构、服务器管理、安装配置等方面,提供全面的入门知识。

Redis概述

Redis是一种基于内存硬盘的高性能键值存储系统,具备多种数据结构支持,如字符串、列表、集合、有序集合和哈希表。与传统的关系型数据库不同,Redis采用apsible dictionary(可变长度字典)储存数据,能够在内存中快速检索和修改数据。

Redis的数据持久化机制通过两种方式实现:1)写操作日志;2)写成内存镜像文件。如果发生断电或重启,数据可以通过日志文件或镜像文件快速恢复。


Redis应用场景

1. 获取最新N个数据

  • 场景描述:需要实时获取最新的N条记录并持续更新。
  • 实现方法
    • 使用LPUSH命令将最新评论ID添加到列表中。
    • 定期运行LTRIM命令,采用惰性删除策略保留最近的5000条记录。
    • 访问时使用lrange命令按需获取指定范围内的数据。
  • 优化建议:如果数据无序,可以将每条记录的时间作为排序依据,使用ZADD命令存储到有序集合中,然后按时间分页读取。

2. 排行榜应用

  • 场景描述:需要统计并获取具有最高排名的N条记录。
  • 实现方法:将要排序的值设为sorted set的score,具体数据作为value。每次只需调用ZADD命令即可实现按排名动态更新。

3. 精准过期时间设定

  • 场景描述:需要自动清除超时的数据。
  • 实现方法:将key的score设置为过期时间的时间戳。通过zset.ttl获取保留期限,定期清理旧数据。

4. 计数器功能

  • 实现方法:使用INCR和DECR命令直接操作值的增减。

5. �antalize操作

  • 实现方法:利用Redis的集合能自动去重。

6. 实时系统与反垃圾系统

  • 实现方法:使用Redis Set进行实时监控。

7. 消息系统

  • 实现方法:基于Pub/Sub模式实时推送消息。

8. 队列系统

  • 实现方法:使用Redis列表操作构建队列,基于sorted set实现有优先级的队列。

9. 缓存

  • 实现方法:将热门数据存储在Redis中,以减少后端数据库的负载。

Redis支持的数据结构

Redis提供多种数据结构,以下是主要实现:

1. 字符串类型

  • 最基础的数据存储方式,支持动态字符串修改。

2. 列表(List)

  • 双端链表结构,可实现队列、栈以及链表操作。

3. 有序集合(ZSet)

  • 结合哈希表和跳跃表设计,支持高效的动态排序操作。

4. 哈希表(Hash)

  • 展开成字典结构,便于存储和查询多个键值对。

5. 集合(Set)

  • 基于哈希表实现,无重复存储,支持快速 membership 检查。

Redis服务器管理

配置与持久化

关键命令

  • CONFIG GET *:显示所有配置参数。
  • CONFIG SET param value:修改配置参数。
  • CFGRIWRITE:切换到副本模式,危险操作,请谨慎使用。
  • BGSAVE/SAVE:分别执行同步写操作。
  • BGREWRITEAOF:异步重写AOF文件。
  • TIME:获取服务器时间。
  • MONITOR:实时打印命令日志。
  • SLAVEOF:设置从服务器。

性能优化

  • 使用BGSAVE或BGREWRITEAOF进行持久化。
  • 设置高效的内存管理策略。

Redis 安装与配置

Linux 安装步骤

  • 解压Redis包:tar zxf redis.tar.gz
  • 进入解压目录:cd redis
  • 执行make clean清理旧文件。
  • 安装编译器和依赖项:
    • 检查当前CC是否以gcc开头。
    • 对于丟失的jemalloc文件,使用make distclean清理后再次编译。
  • 运行make install安装。
  • 启动服务:echo "redis-server /etc/redis/redis.conf" >> /etc/rc.local
  • 单主机多实例部署

    • 修改配置文件,设置daemonize yes。
    • 定义PID文件,指定监听端口(如6379)。
    • 将主从节点配置一致,使用slaveof localhost 6379

    分布式集群安装

  • 安装Redis-trib.rb工具。
  • 初始化集群:redis-trib.rb create --replicas 1
  • 启动更多实例,并迁移数据。

  • 分布式集群与高可用性

    集群部署

    • 使用Redis-shi傅工具进行主从复制,应对节点故障。
    • 支持多级主从结构,实现水平扩展。

    高可用性

    • 使用Redis-sentinel作为监控节点。
    • 集群节点间通信,实现故障转移。

    其他工具与技术结合

    • Java操作:使用Jedis客户端。
    • 分布式集群:支持多语言实现,例如Ruby、Python等。
    • Lua脚本:便于自动化操作和业务逻辑处理。
    • 数据库设计:合理前缀设计,选择适合的数据结构,优化查询性能。

    通过以上内容,可以看出Redis涵盖了从基础到高级应用的知识点。了解这些内容不仅有助于掌握Redis的核心特性,还能为实际项目中的各种场景设计提供思路。

    转载地址:http://wncmz.baihongyu.com/

    你可能感兴趣的文章
    Node-RED中使用Notification元件显示警告讯息框(温度过高提示)
    查看>>
    Node-RED中使用range范围节点实现从一个范围对应至另一个范围
    查看>>
    Node-RED中实现HTML表单提交和获取提交的内容
    查看>>
    Node-RED中将CSV数据写入txt文件并从文件中读取解析数据
    查看>>
    Node-RED中建立TCP服务端和客户端
    查看>>
    Node-RED中建立Websocket客户端连接
    查看>>
    Node-RED中解析高德地图天气api的json数据显示天气仪表盘
    查看>>
    Node-RED中通过node-red-ui-webcam节点实现访问摄像头并截取照片预览
    查看>>
    Node-RED安装图形化节点dashboard实现订阅mqtt主题并在仪表盘中显示温度
    查看>>
    Node-RED订阅MQTT主题并调试数据
    查看>>
    node-request模块
    查看>>
    Node.js 8 中的 util.promisify的详解
    查看>>
    node.js url模块
    查看>>
    Node.js Web 模块的各种用法和常见场景
    查看>>
    Node.js 函数是什么样的?
    查看>>
    Node.js 切近实战(七) 之Excel在线(文件&文件组)
    查看>>
    node.js 初体验
    查看>>
    Node.js 历史
    查看>>
    Node.js 在个推的微服务实践:基于容器的一站式命令行工具链
    查看>>
    Node.js 实现类似于.php,.jsp的服务器页面技术,自动路由
    查看>>