这里需要说明的是,按照上述方式启动redis,其使用的ip为本机ip 127.0.0.1
,端口为6379,并且其余的配置采用的都是默认配置,相关配置可在redis安装目录下的redis.conf
文件中查看。如果需要按照指定的配置文件来启动,可在redis-server
后接上配置文件名,如:
./src/redis-server redis.conf
另外,上述使用redis-cli
连接redis客户端时如果不带任何参数,那么其连接的默认ip和端口为127.0.0.1:6379
。如果需要连接指定ip和端口的客户端,可以使用如下方式:
./src/redis-cli -h 127.0.0.1 -p 6379
这里-h参数表示连接的ip,-p则表示连接的端口。
配置好redis之后,我们就可以在redis中执行相关命令来操作数据,关于redis的常用命令,可查看本人的另一篇博客《redis常用命令大全》,其中有比较详细的讲解。
学习资料:Java进阶视频资源
Redis 主从模式的配置
redis单例提供了一种数据缓存方式和丰富的数据操作api,但是将数据完全存储在单个redis中主要存在两个问题:数据备份和数据体量较大造成的性能降低。
这里redis的主从模式为这两个问题提供了一个较好的解决方案。主从模式指的是使用一个redis实例作为主机,其余的实例作为备份机。
主机和从机的数据完全一致,主机支持数据的写入和读取等各项操作,而从机则只支持与主机数据的同步和读取,也就是说,客户端可以将数据写入到主机,由主机自动将数据的写入操作同步到从机。
主从模式很好的解决了数据备份问题,并且由于主从服务数据几乎是一致的,因而可以将写入数据的命令发送给主机执行,而读取数据的命令发送给不同的从机执行,从而达到读写分离的目的。
如下所示主机redis-A
分别有redis-B
、redis-C
、redis-D
、redis-E
四个从机:
前面第1点中我们已经介绍了redis单例的配置方式,而上面我们也介绍了主从模式其实也是多个redis实例组成的,因而redis主从模式的配置可以理解为多个不同的redis实例通过一定的配置告知其相互之间的主从关系。
而前面已经介绍,每个redis实例都会占用一个本机的端口号,主从模式的配置主要的配置点有两个:当前实例端口号和当前实例是主机还是从机,是从机的话其主机的ip和端口是什么。
一般的redis目录下的redis.conf
保存的是默认配置,尽量不要对其进行修改,这里我们复制三份redis.conf
文件,分别命名为6379.conf
,6380.conf
和6381.conf
,如下是端口为6379的主机的主要配置:
bind 127.0.0.1
port 6379
logfile “6379.log”
dbfilename “dump-6379.rdb”
如下是端口为6380和6381的从机的配置:
bind 127.0.0.1
port 6380
logfile “6380.log”
dbfilename “dump-6380.rdb”
slaveof 127.0.0.1 6379
bind 127.0.0.1
port 6381
logfile “6381.log”
dbfilename “dump-6381.rdb”
slaveof 127.0.0.1 6379
可以看到,端口为6380和6381的实例被配置为端口为6379的实例的从机。配置完成后使用redis-server
分别执行如下命令启动三个实例:
./src/redis-server 6379.conf
./src/redis-server 6380.conf
./src/redis-server 6381.conf
启动之后分别开启开启三个命令行工具分别执行以下命令连接redis实例:
./src/redis-cli -p 6379
./src/redis-cli -p 6380
./src/redis-cli -p 6381
分别在三个命令行工具中执行一个get命令,获取键名为msg的数据,如下所示:
127.0.0.1:6379> get msg
(nil)
12