redis 操作
整个redis.conf文件里参数作用解释地址:redis副本.conf
一、安装
:
安裝redis数据库的方法有两种,一种直接通过docker进行安装镜像、一种直接使用tar安装包进行安装。
这两种方法各有优缺点:
第一种
优点:安装速度快,不用进行源码make操作。缺点:就是缺少了redis.conf
配置文件,这个是用来配置redis的密码,或者集群部署的文件,需要另外下载,或者使用第二种安装后的文件。
第二种
优点:自带redis.conf文件,可以省去下载此文件的麻烦。缺点:安装速度一般,要进行源码make操作
第一种安装方法
:
参考博客:Docker安装Redis并介绍漂亮的可视化客户端进行操作
#拉取Redis镜像,选择目前最新的稳定版本5.0.8:
docker pull redis:5.0.8
#建议配置成阿里云的镜像,速度会快很多。拉取成功后,可以通过下面命令检查:
docker images |grep redis
#后面不需要添加运行指令,例如、/bin/bash指令,否则可能容器会启动不了redis-server
docker run -itd --name redis -p 6379:6379 redis:5.0.8
#通过下面命令检查是否启动成功:
docker ps|grep redis
#进入容器里面:
docker exec -it redis /bin/bash
#在容器里面通过Redis命令行工具连接到数据库:
#不知道h、p则是当前主机跟默认端口6379
redis-cli -h localhost -p 6379
安裝完成后,其中redis-cli只能在容器里执行的指令。在宿主主机上是无法查找到的指令。
第二种方法
:
参考博客:
Redis集群搭建
wget http://download.redis.io/releases/redis-4.0.10.tar.gz
tar zxvf redis-4.0.10.tar.gz
mv redis-4.0.10 /usr/local/redis/
#编译安装
cd /usr/local/redis
make
make install
#查找当前系统下的redis.conf文件
find / -name redis.conf
安装完成后在当前系统可以直接使用redis-cli进行启动对话。
二、对容器里的redis进行配置redis.conf文件
:
參考博客:【Docker】解决创建Redis容器没有conf配置文件 --其默认配置是不用密码访问的,局域网
可以随便连接。
Docker安装Redis完整过程及配置远程连接&踩坑注意事项 --这个是docker添加密码,局域网需要使用密码访问。
这里只针对第一种docker安装没有redis.conf问题.其流程如下:
*a*
、其中在安装完docker后,可以在宿主主机上再进行安装redis,使用第二种方法,
*b*
、然后通过find查找对应redis.conf文件位置,
*c*
、然后把这个文件映射到重新启动的容器里。并且在启动容器的时候附带上启动命令。
給redis设置密码
:
a、
如果是本地安装的redis,只用于本地访问,可以参考【三
】进行修改四处,即可。
b、
如果是容器的redis,如果只按三的设置,外接会无法连接到redis,可能是还有其它选项影响了(具体问题待解)
,这里为了排除其它选项影响,进行新建redis.conf文件,參考博客:Docker安装Redis完整过程及配置远程连接&踩坑注意事项
其大概流程为:
#新建data和conf两个文件夹,位置随意。
mkdir -p /root/docker/redis/data
mkdir -p /root/docker/redis/conf
#添加下面redis.conf裏的文件内容
vim /root/docker/redis/conf/redis.conf
#创建redis容器并启动
docker run --name my_redis -p 6379:6379 -v /root/docker/redis/data:/data -v /root/docker/redis/conf/redis.conf:/etc/redis/redis.conf -d redis redis-server /etc/redis/redis.conf
容器啓動指令解释释义如下
:
–name:给容器起一个名
-p:端口映射 宿主机:容器
-v:挂载自定义配置 自定义配置:容器内部配置
-d:后台运行
redis-server --appendonly yes:在容器执行redis-server启动命令,并打开redis持久化配置
redis.conf
添加内容:
#bind 127.0.0.1 //允许远程连接
protected-mode no
appendonly yes //持久化
requirepass 123456 //密码
測試
:
在容器内测
试:
[root@*** conf]# docker exec -it my_redis redis-cli
127.0.0.1:6379> set name wangcai
(error) NOAUTH Authentication required.
127.0.0.1:6379> auth 123456
OK
127.0.0.1:6379> set name wangcai
OK
127.0.0.1:6379> get name
在局域网另一台主机上
使用Another Redis DeskTop Manager测试,在1
处填写密码即可:
总结:使用自带很多信息的redis.conf进行修改成带密码的,按照【
三
】进行修改四处
,进行重启的容器,外接访问会报:redis Error: Connection reset by peer
,
如果是make安装在本机,并去本机进行redis-cli其是可以通过密码连接的,
而如果删光redis.conf
所有其他配置,只留如下配置,启动容器是可以被外界访问的,證明換有别的选项影响。
三、配置redis.conf
:
-
bind
这里配置要注意,默认是只有一个127.0.0.1,这个时候只能自己连接,其他局域网内是连接不上的。所以,需要配置多个 IP ,这样就可以局域网内进行连接了。我设置的0.0.0.0,虽然这不太安全,方便我在其它地方连接。 -
daemonize
是设置是否后台启动 Redis,默认no,正常都需要以服务形式启动 Redis,所以这里设置为yes。 -
可以设置密码
requirepass
mypassord -
redis v3.0+版本增加了保护机制,默认
protected-mode
yes, 这样目标机器调用可能会报错,需要设置为no
四、 真正的集群化部署
:
Redis集群搭建
五、redis的一些常用指令
:
1、查看当前所有的键,则启动redis-cli后,使用key *
指令,如下如:
2、进行测试redis数据库的读写操作速度:
$ redis-benchmark -n 100000 -q
3、启动redis服务,并且指定其按redis.conf文件里的配置进行配置服务:
cd /usr/local/bin/
redis-server /usr/local/redis/redis.conf
其的redis.conf文件按需修改。
4、 关闭服务:
可以通过杀进程的方式强制关闭服务,也可以通过命令:
redis-cli shutdown
- 在redis查看连接当前主机的主机数量,通过
client list