博客
关于我
Redis介绍、配置与优化
阅读量:398 次
发布时间:2019-03-05

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

Redis概述及实践指南

Redis简介

Redis 是一个开源的、基于C语言开发的NoSQL数据库。它以内存运行并支持持久化,采用键值对存储形式,是分布式架构中不可或缺的一环。Redis服务器采用单进程模型,但可以通过配置调整并发处理能力。

Redis优势

  • 高性能:读写速度可达110000次/s,写入速度可达81000次/s。
  • 多数据类型支持:支持key-value、String、List、Hash、Set及Ordered Sets等多种数据类型操作。
  • 持久化:内存数据可通过RDB或AOF方式持久化保存。
  • 原子性:所有操作均为原子性,保证数据一致性。
  • 高可用性:支持主从复制、哨兵和集群,实现高可用和数据冗余。

Redis安装部署

1. 安装Redis

systemctl stop firewalldsetenforce 0cd /opt/yum install -y gcc gcc-c++ makecd /opt/redis-5.0.7make PREFIX=/usr/local/redis install

2. 启动Redis服务

cd /usr/local/redis/bin./redis-server

3. 配置Redis

vim /etc/redis/6379.confbind 127.0.0.1 192.168.163.10port 6379daemonize yespidfile /var/run/redis_6379.pid

4. 启用Redis客户端工具

ln -s /usr/local/redis/bin/* /usr/local/bin/

Redis命令工具

  • redis-server:启动 Redis 服务器。
  • redis-cli:Redis命令行工具,支持远程连接。
  • redis-benchmark:性能测试工具。
  • redis-check-aof:修复AOF持久化文件。
  • redis-check-rdb:修复RDB持久化文件。

Redis常用命令

1. 基本操作

  • set key value:存储键值对。
  • get key:查询键值。
  • keys pattern:列出匹配模式的键。

2. 数据类型操作

  • type key:获取键值类型。
  • exists key:判断键是否存在。
  • del key:删除键。
  • rename oldkey newkey:重命名键。

3. 数据备份与恢复

  • bgrewriteaof:手动触发AOF文件重写。
  • bgsave:手动触发RDB持久化。
  • flushdb:清空当前数据库。
  • flushall:清空所有数据库。

Redis高可用性

1. 主从复制

主从复制实现数据冗余和负载均衡,支持读写分离架构。

2. 哨兵

哨兵监控主服务器状态,自动切换从服务器为主服务器。

3. 集群

通过 Redis Cluster 实现高性能、高可用性的分布式系统。

Redis持久化

1. RDB持久化

  • 原理:周期性快照内存数据保存到磁盘。
  • 触发条件:手动调用bgsavesave,或配置文件中设置时间间隔。
  • 优点:文件体积小,恢复速度快。

2. AOF持久化

  • 原理:记录所有写操作日志,恢复时执行日志命令。
  • 优点:支持秒级持久化,恢复一致性更强。
  • 缺点:文件体积较大,恢复速度较慢。

Redis性能管理

1. 内存使用

  • 查看内存使用redis-cli info memory
  • 内存碎片率:通过used_memory_rss / used_memory计算。
  • 优化建议:合理分配内存,设置maxmemory-policy

2. 内存管理

  • 内存回收:配置maxmemory-policy,设置淘汰策略。
  • 内存碎片率控制:避免频繁的内存回收操作。

Redis常见场景

  • 缓存:提升应用性能。
  • 实时数据处理:如排行榜、计数器。
  • 高并发系统:如电商、社交网络。

通过合理配置和使用Redis命令,开发者可以充分发挥其高性能、高可用性的优势,适应不同场景需求。

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

你可能感兴趣的文章
MySQL中一条SQL语句到底是如何执行的呢?
查看>>
MySQL中你必须知道的10件事,1.5万字!
查看>>
MySQL中使用IN()查询到底走不走索引?
查看>>
Mysql中使用存储过程插入decimal和时间数据递增的模拟数据
查看>>
MySql中关于geometry类型的数据_空的时候如何插入处理_需用null_空字符串插入会报错_Cannot get geometry object from dat---MySql工作笔记003
查看>>
mysql中出现Incorrect DECIMAL value: '0' for column '' at row -1错误解决方案
查看>>
mysql中出现Unit mysql.service could not be found 的解决方法
查看>>
mysql中出现update-alternatives: 错误: 候选项路径 /etc/mysql/mysql.cnf 不存在 dpkg: 处理软件包 mysql-server-8.0的解决方法(全)
查看>>
Mysql中各类锁的机制图文详细解析(全)
查看>>
MySQL中地理位置数据扩展geometry的使用心得
查看>>
Mysql中存储引擎简介、修改、查询、选择
查看>>
Mysql中存储过程、存储函数、自定义函数、变量、流程控制语句、光标/游标、定义条件和处理程序的使用示例
查看>>
mysql中实现rownum,对结果进行排序
查看>>
mysql中对于数据库的基本操作
查看>>
Mysql中常用函数的使用示例
查看>>
MySql中怎样使用case-when实现判断查询结果返回
查看>>
Mysql中怎样使用update更新某列的数据减去指定值
查看>>
Mysql中怎样设置指定ip远程访问连接
查看>>
mysql中数据表的基本操作很难嘛,由这个实验来带你从头走一遍
查看>>
Mysql中文乱码问题完美解决方案
查看>>