云计算百科
云计算领域专业知识百科平台

Redis从安装到集群全攻略

目录

1. Redis的主要特点是什么?

2. Redis适合哪些场景?

3. Redis的持久化机制有哪些?

4. Redis如何实现高可用性?

5. Redis与Memcached的区别是什么?

6. 如何优化Redis性能?

7. Redis的常见命令有哪些?

8. Redis的客户端有哪些?

9. Redis的安全性问题如何解决?

10. Redis的监控和诊断工具有哪些?

11. Redis的版本更新和兼容性如何?

12. Redis的社区和资源有哪些?

单机安装

配置Redis

创建配置文件

修改配置文件

Redis集群安装



Redis(Remote Dictionary Server)是一个开源的、内存中的数据结构存储系统,通常用作数据库、缓存和消息中间件。它支持多种数据结构,如字符串(strings)、哈希(hashes)、列表(lists)、集合(sets)、有序集合(sorted sets)等。以下是关于Redis的一些常见问题和解答:

1. Redis的主要特点是什么?

  • 高性能:Redis将数据存储在内存中,因此读写速度非常快。
  • 丰富的数据结构:支持多种数据结构,如字符串、哈希、列表、集合、有序集合等。
  • 持久化:支持RDB(快照)和AOF(追加文件)两种持久化方式,确保数据安全。
  • 高可用性:通过Redis Sentinel和Redis Cluster实现高可用性和分布式存储。
  • 原子操作:所有操作都是原子性的,支持事务和Lua脚本。

2. Redis适合哪些场景?

  • 缓存:作为缓存层,加速数据访问。
  • 会话存储:存储用户会话信息,支持分布式会话管理。
  • 排行榜:使用有序集合实现实时排行榜。
  • 消息队列:使用列表或发布/订阅模式实现消息队列。
  • 计数器:使用INCR/DECR命令实现计数器功能。

3. Redis的持久化机制有哪些?

  • RDB(Redis Database):定期将内存中的数据快照保存到磁盘,适合备份和灾难恢复。
  • AOF(Append Only File):记录所有写操作命令,通过重放命令恢复数据,适合数据安全性要求高的场景。

4. Redis如何实现高可用性?

  • Redis Sentinel:监控Redis主从实例,自动进行故障转移。
  • Redis Cluster:分布式存储方案,数据分片存储在多个节点上,支持自动故障转移和扩展。

5. Redis与Memcached的区别是什么?

  • 数据结构:Redis支持多种数据结构,Memcached仅支持简单的键值对。
  • 持久化:Redis支持持久化,Memcached不支持。
  • 性能:Redis在大多数场景下性能优于Memcached,尤其是在处理复杂数据结构时。
  • 功能:Redis支持事务、Lua脚本、发布/订阅等高级功能,Memcached功能较为简单。

6. 如何优化Redis性能?

  • 合理使用数据结构:根据业务需求选择合适的数据结构。
  • 配置持久化策略:根据数据安全性和性能需求选择合适的持久化策略。
  • 使用连接池:减少连接创建和销毁的开销。
  • 分片和集群:通过分片和集群扩展Redis的存储和性能。

7. Redis的常见命令有哪些?

  • 字符串操作:SET、GET、INCR、DECR等。
  • 哈希操作:HSET、HGET、HGETALL等。
  • 列表操作:LPUSH、RPUSH、LPOP、RPOP等。
  • 集合操作:SADD、SMEMBERS、SINTER等。
  • 有序集合操作:ZADD、ZRANGE、ZSCORE等。

8. Redis的客户端有哪些?

  • 命令行客户端:redis-cli。
  • 编程语言客户端:如Python的redis-py、Java的Jedis、Node.js的node_redis等。

9. Redis的安全性问题如何解决?

  • 密码认证:通过配置requirepass设置密码。
  • 网络隔离:将Redis实例部署在内网,限制外部访问。
  • 命令重命名:通过rename-command重命名危险命令,如FLUSHALL、CONFIG等。

10. Redis的监控和诊断工具有哪些?

  • Redis自带的监控命令:INFO、MONITOR、SLOWLOG等。
  • 第三方工具:如RedisInsight、Redis Desktop Manager、Prometheus + Grafana等。

11. Redis的版本更新和兼容性如何?

  • 版本更新:Redis定期发布新版本,修复漏洞和增加新功能。
  • 兼容性:新版本通常向下兼容,但在升级前建议阅读发布说明,了解变更和潜在影响。

12. Redis的社区和资源有哪些?

  • 官方文档:Docs
  • GitHub仓库:GitHub – redis/redis: Redis is an in-memory database that persists on disk. The data model is key-value, but many different kind of values are supported: Strings, Lists, Sets, Sorted Sets, Hashes, Streams, HyperLogLogs, Bitmaps.
  • 社区论坛:Redis User Community – Redis
  • 书籍和教程:如《Redis实战》、《Redis设计与实现》等。

如果你有更具体的问题或需要深入探讨某个方面,请随时提问!下面是安装教程


单机安装

安装依赖

 [root@localhost]# yum install gcc -y

下载redis4.0

[root@localhost]# wget http://download.redis.io/releases/redis-4.0.10.tar.gz
[root@localhost]# tar -xvf redis-4.0.10.tar.gz

编译文件

[root@localhost]# cd redis-4.0.10 && make && make install 

配置环境变量    

[root@localhost]# vim /etc/profile
export REDIS_HOME=/root/redis-4.0.10
export PATH=$REDIS_HOME/bin:$PATH

刷新环境变量   

 [root@localhost]# source /etc/profile

进入主目录启动服务(也可不进入直接启动,前提是配置好环境变量)   

 [root@localhost]# cd redis-4.0.10/src
 [root@localhost]# ./redis-server


配置Redis

创建配置文件

将默认配置文件复制到/etc/redis目录:

sudo mkdir /etc/redis
sudo cp redis.conf /etc/redis/redis.conf

修改配置文件

编辑/etc/redis/redis.conf文件,进行以下配置:

修改redis.conf 将daemonize no 改为 daemonize yes  //后台运行 绑定ip由本地ip换成真机ip,方便对外访问

  • 将daemonize设置为yes,以守护进程方式运行: daemonize yes
  • 设置日志文件路径: logfile /var/log/redis/redis.log
  • 设置数据存储目录: dir /var/lib/redis

单机启动方式这里我就不多说了注意有一下几点需要注意 1.启动时指定配置文件 2.停止时不要强制kill 可能会导致数据丢失 正确关闭方式是shutdown

[root@localhost]# redis-cli -h 192.168.100.36 -p 6379 shutdown

可以安装服务脚本

[root@localhost]# cd redis-4.0.10/utils
[root@localhost]# ./install_server.sh


Redis集群安装

    官网文档(Redis集群规范)     链接的翻译文档     在redis3.0之前的版本需借助哨兵模式去搭建集群,哨兵对外接口,也可以是多个实现高可用,3.0之后redis官方变有了自己的集群     redis集群最小规划是三个master 此处测试为三主三从

创建节点目录

[root@localhost]# mkdir /opt/redis-cluster
[root@localhost]# cd /opt/redis-cluster
[root@localhost redis-cluster]# mkdir 7001 7002 7003 7004 7005 7006

创建配置文件     在每个节点目录中创建一个文件redis.conf,从7001到7006.作为配置文件的模板,以下是最小的Redis群集配置文件,每个节点实例配置稍作修改

[root@localhost redis-cluster]# cd 7001
[root@localhost 7001]# vim redis.conf
port 7001                      #端口7001,7002,7003,7004,7005,7006
cluster-enabled yes             #开启集群
cluster-config-file nodes.conf  #集群配置信息,开启集群后自动生成
cluster-node-timeout 5000       #请求超时时长 
appendonly yes                  #开启aof日志,它会每次写操作都记录一条日志
daemonize yes                   #redis后台运行
bind 192.168.100.36             #默认ip为127.0.0.1 需要改为其他节点机器可访问的ip 否则创建集群时无法访问对应的端口,无法创建集群  
pidfile  /opt/module/redis-Cluster/7001/redis_7001.pid     #pidfile文件对应7001,7002,7003,7004,7005,7006
dir  /opt/module/redis-Cluster/7001/    #数据文件存放位置对应7001,7002,7003,7004,7005,7006

接下来依次启动

[root@localhost redis-cluster]# redis-server 7001/redis.conf
[root@localhost redis-cluster]# redis-server 7002/redis.conf
[root@localhost redis-cluster]# redis-server 7003/redis.conf
[root@localhost redis-cluster]# redis-server 7004/redis.conf
[root@localhost redis-cluster]# redis-server 7005/redis.conf
[root@localhost redis-cluster]# redis-server 7006/redis.conf

启动之后可查看redis进程     

[root@localhost  redis-4.0]# ps -ef | grep redis

创建集群 redis安装目录src中redis-trib.rb完成集群创建,redis-trib.rb命令需要安装gem redis模块才能运行,gem redis需要Ruby环境

[root@localhost redis-cluster]# yum install ruby rubygems -y
[root@localhost redis-cluster]# gem install redis

创建新集群命令:     命令create,选项–replicas 1意味着我们希望每个创建的主服务器都有一个从服 其他参数是我要用于创建新集群的实例的地址列表。

[root@localhost src]# ./redis-trib.rb create –replicas 1 192.168.100.36:7001 192.168.100.36:7002 192.168.100.36:7003 192.168.100.36:7004 192.168.100.36:7005 192.168.100.36:7006

如无报错证明创建成功


集群测试

[root@localhost  redis-custer]# redis-cli -c -h 192.168.100.36 -p 7001
192.168.100.36:7001> set foo bar
-> Redirected to slot [12182] located at 192.168.100.36:7002
OK
192.168.100.36:7002> get foo
"bar"
192.168.100.36:7002> keys *
1) "foo"
192.168.100.36:7002> exit
[root@localhost  redis-cluster]# redis-cli -c -h 192.168.100.36 -p 7001
192.168.100.36:7001> keys *
(empty list or set)
192.168.100.36:7001> get foo
-> Redirected to slot [12182] located at 192.168.100.36:7002
"bar"
192.168.100.36:7002> 

在安装redis集群时遇到了redis requires Ruby version >= 2.2.2 现在需要安装ruby2.2.2以上版本 安装RVM(具体命令可以查看官网,Ruby官网地址 和 Ruby官网安装教程):

[root@localhost ~]# gpg –keyserver hkp://keys.gnupg.net –recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB 
[root@localhost ~]# curl -sSL https://get.rvm.io | bash -s stable

具体可去官网查询 执行

 [root@localhost ~]# source /usr/local/rvm/scripts/rvm

查询rvm库中已知的ruby版本

[root@localhost ~]# rvm list known

我们安装2.6.3版本

[root@localhost ~]# rvm install 2.6.3

使用ruby版本

 [root@localhost ~]# rvm use 2.6.3

设置成默认版本

[root@localhost ~]#rvm use 2.6.3 –default

安装redis

 [root@localhost ~]# gem install redis      

赞(0)
未经允许不得转载:网硕互联帮助中心 » Redis从安装到集群全攻略
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!