Redis 入门

    技术2025-03-25  22

    Redis 简介

    一个神奇的网站

    大型翻车现场

    问题现象

    海量用户高并发

    罪魁祸首——关系型数据库

    性能瓶颈:磁盘IO性能低下扩展瓶颈:数据关系复杂,扩展性差,不便于大规模集群

    解决思路

    Nosql

    降低磁盘IO次数,越低越好 —— 内存存储去除数据间关系,越简单越好 —— 不存储关系,仅存储数据

    什么是Nosql?

    NoSQL:即 Not-Only SQL( 泛指非关系型的数据库),作为关系型数据库的补充。 作用:应对基于海量用户和海量数据前提下的数据处理问题。

    特征: ⚫ 可扩容,可伸缩 ⚫ 大数据量下高性能 ⚫ 灵活的数据模型 ⚫ 高可用

    常见 Nosql 数据库: ⚫ Redis ⚫ memcache ⚫ HBase ⚫ MongoDB

    解决方案(电商场景)

    小节

    ⚫ 企业级应用的常见问题 ◆ 海量用户 ◆ 高并发 ⚫ NoSQL

    Redis

    概念:Redis (REmote DIctionary Server) 是用 C 语言开发的一个开源的高性能键值对(key-value)数据库。 特征:

    数据间没有必然的关联关系内部采用单线程机制进行工作高性能.官方提供测试数据,50个并发执行100000 个请求,读的速度是110000 次/s,写的速度是81000次/s。多数据类型支持 ◆ 字符串类型 string ◆ 列表类型 list ◆ 散列类型 hash ◆ 集合类型 set ◆ 有序集合类型 zset/sorted_set支持持久化,可以进行数据灾难恢复

    Redis 的应用

    ⚫ 为热点数据加速查询(主要场景),如热点商品、热点新闻、热点资讯、推广类等高访问量信息等 ⚫ 即时信息查询,如各位排行榜、各类网站访问统计、公交到站信息、在线人数信息(聊天室、网站)、设备信号等 ⚫ 时效性信息控制,如验证码控制、投票控制等 ⚫ 分布式数据共享,如分布式集群架构中的 session 分离 ⚫ 消息队列

    小节

    ⚫ Redis概念 Redis (REmote DIctionary Server) 是用 C 语言开发的一个开源的高性能键值对(key-value)数据库。 ⚫ Redis特征

    数据间没有必然的关联关系内部采用单线程机制进行工作高性能。官方提供测试数据,50个并发执行100000 个请求,读的速度是110000 次/s,写的速度是81000次/s。多数据类型支持 ◆ 字符串类型 string ◆ 列表类型 list ◆ 散列类型 hash ◆ 集合类型 set ◆ 有序集合类型 zset/sorted_set支持持久化,可以进行数据灾难恢复

    Redis 的下载与安装

    基于Center OS7安装Redis

    ⚫ 下载安装包

    wget http://download.redis.io/releases/redis-5.0.0.tar.gz

    ⚫ 解压安装包

    tar –xvf redis-5.0.0.tar.gz

    ⚫ 编译(在解压的目录中执行)

    make

    ⚫ 安装(在解压的目录中执行)

    make install

    安装 Redis

    ⚫ redis-server 服务器启动命令 ⚫ redis-cli 客户端启动命令 ⚫ redis.conf redis核心配置文件 ⚫ redis-check-dump RDB文件检查工具(快照持久化文件) ⚫ redis-check-aof AOF文件修复工具

    已有安装包安装

    ⚫ 上传安装包

    安装包已经在资料中直接上传到虚拟机

    ⚫ 安装gcc环境

    yum -y install gcc-c++ tcl

    ⚫解压

    tar -zxvf redis-5.0.0.tar.gz

    ⚫make

    进入解压目录执行make

    ⚫make install

    进入解压目录执行make install最终效果如下图

    常见问题

    没有wget命令(-bash: wget: 未找到命令) yum -y install wget 下载网络受限 下载地址 wget --no-check-certificate http://download.redis.io/releases/redis-5.0.0.tar.gz

    Redis服务器启动

    ⚫ 启动服务器——参数启动

    redis-server [--port port]

    ⚫ 范例

    redis-server --port 6379

    ⚫ 启动服务器——配置文件启动

    redis-server config_file_name

    ⚫ 范例

    redis-server redis.conf

    Redis客户端启动

    ⚫ 启动客户端

    redis-cli [-h host] [-p port]

    ⚫ 范例

    redis-cli –h 61.129.65.248 –p 6384

    注意:服务器启动指定端口使用的是–port,客户端启动指定端口使用的是-p。-的数量不同

    Redis基础环境设置约定

    ⚫ 创建配置文件存储目录

    mkdir conf

    ⚫ 创建服务器文件存储目录(包含日志、数据、临时配置文件等)

    mkdir data

    ⚫ 创建快速访问链接

    ln -s redis-5.0.0 redis

    小节

    ⚫ Redis启动

    服务器启动 redis-server --port 6379 客户端启动 redis-cli -h IP地址 -p 端口号

    服务器端设定

    ⚫ 设置服务器以守护进程的方式运行,开启后服务器控制台中将打印服务器运行信息(同日志内容相同)

    daemonize yes|no

    ⚫ 绑定主机地址

    bind ip

    ⚫ 设置服务器端口号

    port port

    ⚫ 设置服务器文件保存地址

    dir path

    客户端配置

    ⚫服务器允许客户端连接最大数量,默认0,表示无限制。当客户端连接到达上限后,Redis会拒绝新的连接

    maxclients count

    ⚫ 客户端闲置等待最大时长,达到最大值后关闭对应连接。如需关闭该功能,设置为 0

    timeout seconds

    日志配置

    ⚫ 设置服务器以指定日志记录级别

    loglevel debug|verbose|notice|warning

    ⚫ 日志记录文件名

    logfile filename

    注意:日志级别开发期设置为verbose即可,生产环境中配置为notice,简化日志输出量,降低写日志IO的频度

    小节

    ⚫ 服务器相关

    ◆ daemonize yes|no ◆ bind ip-address ◆ port [port] ◆ dir ”目录名”

    ⚫ 客户端相关

    ◆ maxclients [client-num] ◆ timeout [seconds]

    ⚫ 日志相关

    ◆ loglevel debug|verbose|notice|warning ◆ logfile ”日志文件名”

    Redis 的基本操作

    信息读写

    ⚫ 设置 key,value 数据

    set key value

    ⚫ 范例

    set name itheima

    ⚫ 根据 key 查询对应的 value,如果不存在,返回空(nil)

    get key

    ⚫ 范例

    get name

    帮助信息

    ⚫ 获取命令帮助文档

    help [command]

    ⚫ 范例

    help set

    ⚫ 获取组中所有命令信息名称

    help [@group-name]

    ⚫ 范例

    help @string

    退出命令行客户端模式

    ⚫ 退出客户端

    quit || exit

    ⚫ 快捷键

    Ctrl+C

    小节

    ⚫ 数据操作

    ◆ get ◆ set

    ⚫ 获取帮助信息

    ◆ help

    ⚫ 退出客户端

    ◆ quit ◆ exit

    总结

    Redis 入门

    Redis 简介 ◆ NoSQL ◆ RedisRedis 的下载与安装 ◆ 下载与安装 ◆ 服务器与客户端启动 ◆ 配置文件(3类)Redis 的基本操作 ◆ 数据读写 ◆ 退出与帮助信息获取
    Processed: 0.010, SQL: 9