首先,我们要了解redis是干什么的?其次,了解redis的使用?最后,将redis进行实际测试使用。
1、redis是什么
redis是非关系性数据库,存储数据格式为key-value,value支持存储多种数据类型,包括list、set、string、hash、sortset等。它之所以受大众欢迎,是因为它将数据存储在内存中,因此读取速度客观。并且,redis具有持久化特性,会定期将数据进行持久化到硬盘,减缓内存消耗。
2、redis的使用方式
redis分为单节点和集群模式,单节点只适用于少量数据,而当数据量不断增大时,单节点内存就无法存储足够的数据,因此出现了集群模式。而集群模式有分为四种:
1)主从模式
创建master和slave两个节点,主机用来读写数据,而从机负责对主机的数据进行备份,所以该模式下的作用仅仅是为了数据备份。
2)分布式模式
该集群模式一般建议创建6个redis节点,分为3主3从。主节点将内存空间划分成不同范围内的数据片,通过哈希函数对key进行计算,得出一个数值,与hash-slot的标号进行对应,并存放该key。该模式下的作用是为了存储大量数据,实现存储空间的横向扩容。
3)keepalived模式
该模式需要对master和slave节点分别创建keepalived.conf文件,通过该文件中配置项的设置,实现主从机的自动切换。即当主服务器宕机时,通过检测,自动将其下的slave服务器转换为master,继续提供服务。
4)哨兵模式
该模式主要是为了监控节点的运行状态,也可以实现主从机的切换,但存在一定的风险,因此不推荐使用。
3、redis的实际使用
本篇主要是介绍为了解决大量数据存储的问题,而搭建redis分布式集群的过程。由于是测试使用,因此在同一台机器上进行安装部署redis节点。
1) 分布式集群的搭建
首先,需要根据安装redis单节点一样,创建6个redis节点,便于后期集群的创建。
安装单节点:
cd /home/tidb/
mkdir redis && cd redis
mkdir 6379 6380 6381 6382 6383 6384 //创建6个节点文件夹
cd 6379
//将redis-3.0.7.tar.gz拷贝到6379文件夹
tar -zxvf redis-3.0.7.tar.gz //解压缩
cd redis-3.0.7 //进入压缩文件夹
vim redis.conf //编辑配置文件
配置文件部分配置内容:
安装部署集群模式,部分主要配置如下:
port 6379 //端口号
daemonize no //是否是守护进程
logfile "" //日志文件存放的位置
cluster-enabled yes //开启集群模式
cluster-config-file nodes-6379.conf //集群配置文件
cluster-node-timeout 15000 //集群节点超时设置
当单节点安装完成后,将Redis的配置文件拷贝到各个文件夹中,并修改对应的端口号和配置文件名。最后,开启6个节点。
单节点:
./src/redis-server redis.conf
多节点:
for(int i=0;i++;i<=4) ./638$i/src/redis-server ./638$i/redis.conf
然后,可以通过ps -ef | grep redis查看进程情况。
2)安装Redis集群,需要配置ruby环境
cd /home/tidb
mkdir ruby
//拷贝ruby-3.0.7.tar.gz到ruby文件夹
cd ruby
tar -zxvf ruby-3.0.7.tar.gz
cd ruby-3.0.7
./configure -prefix=/home/tidb/ruby
make && make install
ruby安装完成后,需要配置环境变量
vim ~/.bash_profile
//在bash_profile文件中,进入编辑模式(a/o/i)
export RUBY_HOME=/home/tidb/ruby
export PATH=$PATH:${RUBY_HOME}/bin
//esc退出编辑模式
:wq //保存并退出
最后,source ~/.bash_profile并测试ruby是否安装成功---ruby -v(--version)
若显示版本信息,证明安装成功。
3)接下来,需要安装的环境是rubygems
mkdir rubygems
//拷贝rubygem-2.7.7.zip到该文件夹下
unzip rubygem-2,7,7.zip
cd rubygem-2.7.7
ruby setup.rb
安装到这一步,并没有出现我预期地结果,而是出现了错误:缺少zlib包。
ERROR: Loading command: install (LoadError)
cannot load such file -- zlib
ERROR: While executing gem ... (NoMethodError)
undefined method 'invoke_with_build_args' for nil:NilClass
4)安装zlib包
mkdir zlib
//拷贝zlib-1.2.11.tar.gz到文件夹中
tar -zxvf zlib-1.2.11.tar.gz
cd zlib-1.2.11
./configure -prefix=/home/tidb/zlib
make && make install
5)重新回到ruby的文件目录下,编译它里面的zlib
cd /home/tidb/ruby/ext/zlib
ruby extconf.rb --with-zlib-include=/home/tidb/zlib/include/ --with-zlib-lib=/home/tidb/zlib/lib
make && make install
//如果此时仍然报错,请重新编译安装ruby
6)安装成功后,重新回到rubygems安装目录下,运行---ruby setup.rb
7)安装ruby-redis插件
//将redis-3.0.7.gem拷贝到Redis所在目录下
cd /home/tidb/redis/6379
cp redis-3.0.7.gem /home/tidb/redis/6379
gem install redis-3.0.7.gem -local
8)如果此时出现一个OpenSSL的错误,那么解决方法与zlib同样
cd /home/tidb
mkdir openssl
tar -xvf openssl-1.0.2n.tar.gz
./config -fPIC --prefix=/home/tidb/openssl enable-shared
./config -t
make && make install
//完成后,仍然需要重新编译一下ruby中的OpenSSL
cd /usr/local/ruby/ruby-2.5.0/ext/openssl/
ruby extconf.rb --with-openssl-include=/home/tidb/openssl/include/ --with-openssl-lib=/home/tidb/openssl/lib
make && make install
安装到此,集群所需的所有环境都已经准备好了,接下来终于到启动集群的时刻了。
9)启动一个集群
cd /home/tidb/redis/6379/src
./redis-trib.rb create --replicas 1 10.0.19.3:6379 10.0.19.3:6380 10.0.19.3:6381 10.0.19.3:6382 10.0.19.3:6383 10.0.19.3:6384
10)集群启动成功后,任意一个客户端进行连接,通过info/nodes可以查看集群/节点信息
cd /home/tidb/redis/6379
./src/redis-cli -c -h 10.0.19.3 -p 6379
10.0.19.3:6379 > cluster info
10.0.19.3:6379 > cluster nodes
最后,感谢博客园园主的原博帮助。链接地址:https://www.cnblogs.com/hello-daocaoren/p/8431902.html