Redis的配置与优化

本文探讨了关系型数据库与非关系型数据库的区别,重点介绍了Redis作为非关系型数据库的特性、应用场景、安装部署以及常用命令,展示了Redis在内存存储、高并发和数据持久化方面的优势。
摘要由CSDN通过智能技术生成

一、关系型数据库和非关系型数据库

  1.1 关系型数据库

    一个结构化的数据库创建在关系模型基础上,一般面向于记录,包括:Oracle、MySQL、SQLServer、Microsoft Access、DB2

  1.2 非关系型数据库

    除了主流的关系型数据库外的数据库,都为非关系型数据库,包括Redis(支持大数据、高并发)、MongoDB、Hbase(大数据)、CouhDB(大数据)

  1.2.1 非关系型数据库的背景

High performance——对数据库高并发读写需求

High Storage——对海量数据高校存储和访问需求

High Scalability && High Availability——对数据库高扩展性与高可用性需求

  1.3 关系型数据库和非关系型数据库之间的区别

  • 数据存储方式不同
    • 关系型数据库:数据主要存储在数据表的行和列中
    • 非关系型数据库:数据通常存储在数据集中
  • 扩展方式不同
    • 关系型数据库:纵向,比如:硬件中添加内存
    • 非关系型数据库:横向(天然分布式)
  • 对事务的支持不同

二、Redis

  2.1 Redis的定义

    远程字典服务器是一个开源的NoSQL数据库,基于内存运行并支持持久化,采用key-value(键值对)的存储方式,是目前分布式架构不可或缺的一环。Redis服务器程序时单进程模型,也就是说在一台服务器上可以开启多个Redis进程,Redis的实际处理速度则是完全依靠于主进程的执行效率

  2.2 Redis的优点

  • 具有极高的数据读写速度

  • 支持丰富的数据类型:支持key-value、Strings、Lists、Hashes、Sets及Sorted Sets等数据类型操作

  • 支持数据的持久化:可以将内存中的数据保存在磁盘中,重启的时候可以在此加载进行使用

  • 原子性

  • 支持数据备份(MASTER-SLAVE之间的数据备份)

  2.3 Redis的应用场景

    Redis主要存放在内存中!例如:获取最新N个数据的操作、排行榜类应用、计数器应用、存储应用、粗处关系、实时分析系统、日志记录。

  2.4 Redis传输速率快的原因

  • Redis是一款纯内核结构,避免了磁盘I/O等耗时操作

  • Redis命令处理的核心模块为单线程

  • 采用了I/O多路复用机制,提高了并发率

  2.5 Redis安装部署(实验)

  2.5.1 关闭防火墙和防护

systemctl stop firewalld

setenforce 0

  2.5.2 安装gcc、gcc-c++ 

  2.5.3 解压压缩包

  2.5.4 编译安装

  2.5.5 运行脚本

  2.5.6 编辑6379配置文件并重新启动

  2.6 Redis命令工具

redis-server:用于启动 Redis 的工具


redis-benchmark:用于检测 Redis 在本机的运行效率


redis-check-aof:修复 AOF 持久化文件


redis-check-rdb:修复 RDB 持久化文件


redis-cli:Redis 命令行工具

  2.6.1 redis-cli命令行工具

语法:redis-cli -h host -p port -a password

-h 指定远程主机
-p指定 Redis 服务的端口号
-a指定密码,未设置数据库密码可以省略-a 选项

  2.6.2 redis-benchmark测试工具

语法:redis-benchmark [选项] [选项值]

-h 指定服务器主机名
-p指定服务器端口
-s指定服务器 socket
-c指定并发连接数
-n指定请求数
-d以字节的形式指定 SET/GET 值的数据大小
-k1=keepalive 0=reconnect
-rSET/GET/INCR 使用随机 key, SADD 使用随机值。
-P通过管道传输<numreq>请求。
-q强制退出 redis。仅显示query/sec 值。
--csv以 CSV 格式输出。
-l生成循环,永久执行测试。
-t仅运行以逗号分隔的测试命令列表。
-IIdle 模式。仅打开 N 个 idle 连接并等待。

三、Redis数据库常用命令

  3.1 set和get

set:存放数据,命令格式为 set key value


get:获取数据,命令格式为 get key

  3.2 exists

    exists 命令可以判断键值是否存在

  3.3 del

    del 命令可以删除当前数据库的指定 key

  3.4 type

     type 命令可以获取 key 对应的 value 值类型

  3.5 rename

    rename 命令是对已有 key 进行重命名。(覆盖)

    格式:rename 源key 目标key

  3.6 renamenx

    renamenx 命令的作用是对已有 key 进行重命名,并检测新名是否存在,如果目标 key 存在则不进行重命名。(不覆盖

    格式:renamenx 源key 目标key

  3.7  dbsize

    dbsize命令的作用是查看当前数据库中key的数目

  3.8  设置密码

    使用config set requirepass yourpassword命令设置密码

  3.9 查看密码

    使用config set requirepass yourpassword命令设置密码

四、Redis多数据库常用命令

  4.1 多数据库中来回切换

    命令格式:select 序号

  4.2 多数据库之间移动数据

   格式:move 键值 序号

   4.3 清除数据库内数据

FLUSHDB :清空当前数据库数据


FLUSHALL :清空所有数据库的数据,慎用!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值