数据库之-redis操作

redis 操作

整个redis.conf文件里参数作用解释地址:redis副本.conf
一、安装

安裝redis数据库的方法有两种,一种直接通过docker进行安装镜像、一种直接使用tar安装包进行安装。
这两种方法各有优缺点:
第一种优点:安装速度快,不用进行源码make操作。缺点:就是缺少了redis.conf配置文件,这个是用来配置redis的密码,或者集群部署的文件,需要另外下载,或者使用第二种安装后的文件。
第二种优点:自带redis.conf文件,可以省去下载此文件的麻烦。缺点:安装速度一般,要进行源码make操作

#拉取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只能在容器里执行的指令。在宿主主机上是无法查找到的指令。

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

Redis集群搭建

  • 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

猜你喜欢

转载自blog.csdn.net/yangdashi888/article/details/110873502