01-Redis简介

nobility 发布于 2022-10-16 2368 次阅读


Redis简介

Redis是一个开源的,基于键值的存储服务系统,对于value支持多种数据结构,key都是字符串

Redis特性

  1. 速度快

    • 官方宣称可达到10wOPS(每秒10w次读写)
    • 将数据存储在内存中(速度快的主要原因)
    • 用C语言开发的
    • 单线程,避免线程切换和竞态消耗
    • 非阻塞IO
  2. 持久化:Redis将所有数据保持在内存中,对数据的更新将异步的保存在磁盘中

  3. 支持多种数据结构

    • String(字符串)、BitMap(位图)、HyperLogLog(超小的内存唯一值计数器)
    • Hash(哈希)
    • List(列表)
    • Set(集合)
    • ZSet(有序集合)、GEO(地理信息定位)
  4. 支持多种编程语言:Java、NodeJS、Python、Golang等

  5. 功能丰富:支持类MQ的发布订阅功能、支持Lua脚本、支持简单事务、支持pipeline等

  6. 简单

    • Redis3.0的单机核心代码只有2300行代码
    • 不依赖外部库
    • 单线程模型,一次只能执行一个命令,后续命令只能等待
  7. 支持主从复制:主服务器节点数据可以同步到从服务器节点上

  8. 高可用和分布式

    • 在2.8中支持Redis-Sentinel
    • 在3.0中支持Redis-Cluster

Redis使用场景

  • 做缓存系统
  • 做计数器
  • 做消息队列系统
  • 做排行榜
  • 做社交网络
  • 实时性系统

Redis安装

可从Redis官网获取最新版,也可以从获取这里历史版本

yum install gcc-c++	#安装环境
wget -P /opt http://download.redis.io/releases/redis-6.0.8.tar.gz	#下载安装包
tar xzf /opt/redis-6.0.8.tar.gz -C /opt/	#解压安装包
cd /opt/redis-6.0.8	#进入解压后的目录
make && make install	#编译安装,默认安装的好的命令在/usr/local/bin/目录下
cp /opt/redis-6.0.8/redis.conf /usr/local/bin/	#将启动配置文件拷贝到安装目录中
rm -rf /opt/redis-6.0.8* #可选择删除安装文件

若安装过程中出现大批量报错,可能是gcc版本过低,需要升级

yum -y install centos-release-scl	#安装scl源
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils	#安装gcc9版本
scl enable devtoolset-9 bash	#暂时切换到9版本
gcc -v	#查看gcc版本命令

/usr/local/bin/下可查看到安装的命令

命令 描述
redis-server 服务端
redis-cli 客户端
redis-benchmark 性能测试
redis-check-aof AOF文件修复工具
redis-check-rdb RDB文件修复工具
redis-sentinel 启动哨兵服务器端

Redis启动方式

  1. 最简启动
    • 直接运行redis-server命令,不加任何参数,以默认配置进行启动
  2. 动态参数启动:运行redis-server命令时增加一些参数
    • --port:指定端口号
    • -v:查看版本号信息,并没有启动
  3. 配置文件启动:运行redis-server命令时后跟一个配置文件路径

安全的关闭方式

使用redis-cli进入服务,执行shutdown save关闭并保存或shutdown nosave关闭不保存

连接Redis

redis-cli:启动Redis客户端

  • -h:指定连接主机IP
  • -p:指定连接端口
  • -a:指定连接密码

Redis常用配置

配置项 含义 默认
daemonize 是否以后台守护进程启动 no
port 服务所使用的端口号 6379
bind 绑定的本机输入流量网卡IP地址(绑定的是客户端访问流量通过的网卡,并不是客户端IP,删除或0.0.0.0则谁都可以访问) 127.0.0.1
protected-mode 是否开启保护模式(开启后只允许本机访问) yes
requirepass 设置Redis的密码
logfile Redis系统日志文件名(仅仅只是名,可使用内置常量命名,比如${port}代表端口号)
dir Redis的工作目录(产生各种的文件的存放目录) ./
此作者没有提供个人介绍
最后更新于 2022-10-16