博客
关于我
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/

    你可能感兴趣的文章
    npm升级以及使用淘宝npm镜像
    查看>>
    npm发布包--所遇到的问题
    查看>>
    npm发布自己的组件UI包(详细步骤,图文并茂)
    查看>>
    npm和package.json那些不为常人所知的小秘密
    查看>>
    npm和yarn清理缓存命令
    查看>>
    npm和yarn的使用对比
    查看>>
    npm如何清空缓存并重新打包?
    查看>>
    npm学习(十一)之package-lock.json
    查看>>
    npm安装 出现 npm ERR! code ETIMEDOUT npm ERR! syscall connect npm ERR! errno ETIMEDOUT npm ERR! 解决方法
    查看>>
    npm安装crypto-js 如何安装crypto-js, python爬虫安装加解密插件 找不到模块crypto-js python报错解决丢失crypto-js模块
    查看>>
    npm安装教程
    查看>>
    npm报错Cannot find module ‘webpack‘ Require stack
    查看>>
    npm报错Failed at the node-sass@4.14.1 postinstall script
    查看>>
    npm报错fatal: Could not read from remote repository
    查看>>
    npm报错File to import not found or unreadable: @/assets/styles/global.scss.
    查看>>
    npm报错TypeError: this.getOptions is not a function
    查看>>
    npm报错unable to access ‘https://github.com/sohee-lee7/Squire.git/‘
    查看>>
    npm淘宝镜像过期npm ERR! request to https://registry.npm.taobao.org/vuex failed, reason: certificate has ex
    查看>>
    npm版本过高问题
    查看>>
    npm的“--force“和“--legacy-peer-deps“参数
    查看>>