网站模板库
  • 首页
  • web前端工具
    • HTML/JS转换工具
    • JS/HTML格式化工具
    • 字母/英文大小写转换工具
    • robots.txt文件生成工具
    • Js压缩/格式化工具
    • Css在线压缩工具_代码格式化
  • 关于我们
    • 免责声明
    • 联系我们
    • 广告服务
    • 服务项目
    • 关于我们
    • 网站轮播
    • 公告
    • 成都优优科技专用
    • 按行业分类
  • web学院
    • 服务器教程
    • 学习资料
      • 基础书籍
      • 交互书籍
      • 入门教程
      • 特效分类
    • 案例分享
    • web资讯
  • 网页特效
    • 图片特效
    • 导航特效
    • 滑动按钮
    • 表单特效
    • 文字特效
    • 弹窗特效
    • 其他特效
  • 织梦模板
    • 科技/电子/数码/通信
    • 文化/艺术/广告/传媒
    • 装修/设计/家居/家具
    • 基建/施工/地产/物业
    • 餐饮/酒店/旅游/票务
    • 食品/果蔬/饮料/日用
    • 服饰/珠宝/礼品/玩具
    • 摄影/婚庆/家政/生活
    • 运动/健身/体育/器材
    • 学校/教育/培训/科研
    • 美容/保健/医院/医疗
    • 金融/财税/咨询/法律
    • 政府/组织/集团/协会
    • 汽车/物流/交通/搬运
    • 机械/设备/制造/仪器
    • 化工/环保/能源/材料
    • 农业/畜牧/养殖/宠物
    • 其他模版
    • IT/软件/信息/互联网
  • 手机模板
    • 手机APP模板
    • 微信小程序模板
    • wap
  • 网站模板
    • joomla模板
    • Drupal模板
    • z-blog模板
    • EyouCms模板
    • Bootstrap模板
    • 帝国cms模板
    • CmsEasy模板
    • MetInfo模板
    • 购物商城模板
      • Shopify主题
      • PrestaShop主题
    • 后台模板
    • 纯HTML模板
    • ecshop模板
    • phpwind模板
    • pbootcms模板
    • phpcms模板
    • wordpress模板
    • discuz模板
  • 教程
    • 织梦教程
    • Discuz教程
    • WordPress教程
    • Phpcms教程
    • Phpwind教程
    • ECShop教程
    • Joomla教程
    • Drupal教程
    • zblog教程
    • EyouCMS教程
    • 帝国cms教程
    • MetInfo教程
    • CmsEasy教程
登录
当前位置:网站模板库 > web学院 > 服务器教程 > docker下怎么连接redis指定的库
商业源码 服务器教程 2024-01-12 4:51:01

docker下怎么连接redis指定的库

docker下怎么连接redis指定的库,第1张

快速实现Docker到Redis的连接

首先运行下面命令,从Docker Hub拉取Redis镜像:

$ docker pull redis 

运行上面的命令下载镜像,Docker daemon会自动输出该Redis镜像的来源信息、下载状态,下载完成之后系统也会显示最终状态信息。

镜像拉取完成之后,大家可以用下面的命令启动Redis容器,记得要带上“-d”参数:

$ docker run --name myredis-itsmine -d redis 

“-d”参数的作用是让Redis在后台运行,因为本例中采用这种后台运行的方式较为合适,所以这里我们写上了这个参数。如果不带 “-d”参数的话处理起来就要麻烦一些,这种情况下我们需要先停止终端的运行或者退出容器,然后才能通过宿主机来访问Redis。

下面我们要进行最重要的一步操作,连接Redis。由于我们并没有实际的需要连接到Redis的应用,所以这里我们用了redis-cli工具。大家可以在宿主机上安装redis-cli,不过我建议大家新建一个容器,将redis-cli运行在里面,然后用下面的命令把这两个容器连接起来,这样我们就可以看到详细的应用信息:

$docker run --rm -it --link myredis-itsmine:redis redis /bin/bash

运行该命令之后我们就可以在bash命令行下面看到容器的提示信息了:

root@f75bacab2715:/data#

$ docker run --rm -it --link myredis:redis redis /bin/bash

$ root@af47015c4a76:/data# redis-cli -h redis -p 6379

$ redis:6379> ping

$ PONG

$ redis:6379> set "Abc" 123

$ OK

$ redis:6379> get "Abc"

$ "123"

$ redis:6379> exit

root@af47015c4a76:/data# exit

$ exit

在上面的命令中,docker run命令后面跟的“–link myredis-itsmine:redis” 参数用于创建连接,Docker收到该指令后,就会尝试将我们新建的容器连接到当前的“myredis-itsmine” 容器,同时会将新容器中的redis-cli命名为“redis”。Docker会在容器中的/etc/hosts路径下为“redis”创建一个入口,并指向“myredis-itsmine”容器的IP地址。这样我们就可以在redis-cli中直接使用“redis”作为主机名,这种做法是很方便的,我们不必再去找其他办法来“发现”Redis的IP地址,然后加以引用了。

接下来我们就可以通过set和put命令来执行Redis的存取操作了,这里我们可以用一些示例数据来做个试验。当然,在开始存取操作之前,大家还要再运行一下Redis的ping命令,验证一下Redis服务器是否已经连接上了。

<php

//第一步:实例化redis对象

$redis = new redis();

//第二步:php客户端设置的ip及端口

$redis->connect("127001","6379");

//第三部:配置连接密码 检测redis服务器连接状态

//连接失败直接结束 并输出

$auth = $redis->auth('zhenai') or die("redis 服务器连接失败");

// var_dump($auth);连接成功 返回 true 反之 返回false

//第四步 可用可不用

echo $connect_status=$redis->ping();

if($connect_status==="+PONG")

{

echo "redis 服务器连接成功";

}

//就是如此简单

先下载redis,找到下载的压缩包 redis-6430503zip,解压后,重命名为redis-30,置于某个文件夹下(如D:\Program Files)。

1 运行Redis服务器端

直接双击D:\Program Files\redis-30目录下的redis-serverexe文件(redis服务器端),就会以窗口的形式运行Redis服务器(但该窗口不可关闭,否则,Redis服务不可用)。此种运行redis服务器的方式,没有加载指定的配置文件。

2 运行Redis客户端

直接双击D:\Program Files\redis-30目录下的redis-cliexe文件(redis客户端),如果显示127001:6379> ,就说明客户端运行成功。

输入命令: keys

查看所有的键

如果提示“NOAUTH Authentication required”,则说明Redis服务器设置了密码,请输入正确的密码后,再来进行其他操作。

输入命令: auth 密码

如果提示OK,就说明密码正确。

Tips:可以将D:\Program Files\redis-30目录下的redis-serverexe发送到桌面快捷方式,便于以后快速打开Redis客户端。

3 将Redis服务安装到本地服务

由于上述启动Redis服务器的方式有点复杂,且redis服务窗口不可关闭。故这里介绍如何将Redis服务安装到Windows系统的本地服务。

复制D:\Program Files\redis-30目录下的rediswindowsconf文件,重命名为redisconf,来作为redis的配置文件。

打开win系统的命令行,依次输入下列命令:

d: (回车,切换到d盘)

cd Program Files\redis-30\ (回车,切换至D:\Program Files\redis-30目录)

redis-server --service-install redisconf --loglevel verbose (回车,安装redis本地服务,指定配置文件redisconf)

操作完成后,就可以到win系统的本地服务管理处,查看和操作Redis服务。(计算机图标右键 -> 管理) -> 服务和应用程序 -> 服务)

4 设置Redis密码

编辑D:\Program Files\redis-30目录下的redisconf配置文件,找到如下代码:

# requirepass foobared

将其复制一行,去掉前导的#注释符,将foobared改为你要设置的密码,如:

requirepass test

保存退出。

重启Redis服务,配置文件就会生效。

第一:非集群状态下

非集群状态下用Jedis获取Redis连接,得到Jedis对象即可,一共有两种:

1利用Jedis构造器,仅限用于测试,在实际项目中肯定是用JedisPool。

Jedis(String host);

Jedis(String host , int port);

2利用JedisPool

主要是利用Jedis jedis=jedisPoolgetResource();

JedisPool有N多个构造器,常用的构造器参数有GenericObjectPoolConfig poolConfig,String host,int port,int timeout,String password,创建GenericObjectPoolConfig对象时我们一般用其子类JedisPoolConfig (redisclientsjedisJedisPoolConfig),timeout是连接redis服务器的超时时间,以毫秒为单位,一般设置为0,如果不设为0,则不可设置太小,如果设成1、2,那么可能因为网络原因在1毫秒、2毫秒之内没有连上服务器而报错。见下例:

[java] view plain copy

public static void main(String[] args) {

JedisPoolConfig poolConfig = new JedisPoolConfig();

// 最大连接数

poolConfigsetMaxTotal(2);

// 最大空闲数

poolConfigsetMaxIdle(2);

// 最大允许等待时间,如果超过这个时间还未获取到连接,则会报JedisException异常:

// Could not get a resource from the pool

poolConfigsetMaxWaitMillis(1000);

JedisPool pool = new JedisPool(poolConfig, "19216883128", 6379, 0, "123");

Jedis jedis = null;

try {

for (int i = 0; i < 5; i++) {

jedis = poolgetResource();

jedisset("foo" + i, "bar" + i);

Systemoutprintln("第" + (i + 1) + "个连接, 得到的值为" + jedisget("foo" + i));

// 用完一定要释放连接

jedisclose();

}

} finally {

poolclose();

}

}

如上,创建出一个JedisPool对象,然后调用其getResource()方法获取redis连接即可,之后就可以调用Jedis API操作redis了。jedis连接用完要释放即close,如果不close,则产生的连接会越来越多,当达到了最大连接数,再想获得连接,就会等待,当超过了最大等待时间后就会报异常。

第二:集群状态下

集群状态下用Jedis获取redis连接,是得到JedisCluster对象,之后对redis进行操作都是用此对象的方法进行的:

[java] view plain copy

public static void main(String[] args) {

JedisPoolConfig poolConfig = new JedisPoolConfig();

// 最大连接数

poolConfigsetMaxTotal(1);

// 最大空闲数

poolConfigsetMaxIdle(1);

// 最大允许等待时间,如果超过这个时间还未获取到连接,则会报JedisException异常:

// Could not get a resource from the pool

poolConfigsetMaxWaitMillis(1000);

Set<HostAndPort> nodes = new LinkedHashSet<HostAndPort>();

nodesadd(new HostAndPort("19216883128", 6379));

nodesadd(new HostAndPort("19216883128", 6380));

nodesadd(new HostAndPort("19216883128", 6381));

nodesadd(new HostAndPort("19216883128", 6382));

nodesadd(new HostAndPort("19216883128", 6383));

nodesadd(new HostAndPort("19216883128", 6384));

JedisCluster cluster = new JedisCluster(nodes, poolConfig);

String name = clusterget("name");

Systemoutprintln(name);

clusterset("age", "18");

Systemoutprintln(clusterget("age"));

try {

clusterclose();

} catch (IOException e) {

eprintStackTrace();

}

}

用集群时,好像没有办法设置集群的参数,比如最大连接数,虽然在创建JedisCluster 对象时传了JedisPoolConfig对象进去,但是JedisPoolConfig对象中的设置是不生效的。

一、首先确定服务器上Redis是可以访问的

二、查看redisconf配置文件

确保以下两项配置

1bind 127001改为 #bind 127001

2protected-mode yes 改为 protected-mode no

ps: protected-mode 是32 之后加入的新特性,是为了禁止公网访问redis cache,加强redis安全的。

它启用的条件,有两个:

1) 没有bind IP

2) 没有设置访问密码

解决:刚好我们注释了bing 127001 并且默认redisconf也是没有设置密码的 所以触发了protected-mode 我们将它关闭即可 生产环境请慎用。

IP地址错误。成功连接本地redis服务器时返回是设置IP地址错误,只需要重新设置即可。服务器指在网络环境中或在具有客户-服务器结构(参见客户-服务器计算)的分布式管理环境中,为客户的请求提供服务的节点计算机。

服务器 命令 容器 密码 如果
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » docker下怎么连接redis指定的库

商业源码 钻石

分享到:
上一篇
Excel服务器是什么?
下一篇
路由器故障排查方法

相关推荐

普通服务和云服务器的区别是什么?

普通服务和云服务器的区别是什么?

frp穿透速度跟哪个有关

frp穿透速度跟哪个有关

浪潮服务器nf5270m3这个型号的服务器能在bios里设置风扇转速吗,大神,方

浪潮服务器nf5270m3这个型号的服务器能在bios里设置风扇转速吗,大神,方

steam如何快速切换账号?steam切换吃鸡游戏账号的方法介绍

steam如何快速切换账号?steam切换吃鸡游戏账号的方法介绍

0条评论

发表评论 取消回复

要发表评论,您必须先登录。

提供最优质的资源集合

立即查看 了解详情
网站模板库

主题/付费下载/查看/余额管理/自定义积分,集成支付,卡密,推广奖励等。

本站导航
  • 链接标题
友情链接
  • 链接标题
快速搜索
本站由钛宇宙强力驱动
友情链接:
    商业源码网蜀ICP备2023005044号
    网站模板库
    • 登录
    • 注册
    网站模板库
    • 首页
    • web前端工具►
      • HTML/JS转换工具
      • JS/HTML格式化工具
      • 字母/英文大小写转换工具
      • robots.txt文件生成工具
      • Js压缩/格式化工具
      • Css在线压缩工具_代码格式化
    • 关于我们►
      • 免责声明
      • 联系我们
      • 广告服务
      • 服务项目
      • 关于我们
      • 网站轮播
      • 公告
      • 成都优优科技专用
      • 按行业分类
    • web学院►
      • 服务器教程
      • 学习资料►
        • 基础书籍
        • 交互书籍
        • 入门教程
        • 特效分类
      • 案例分享
      • web资讯
    • 网页特效►
      • 图片特效
      • 导航特效
      • 滑动按钮
      • 表单特效
      • 文字特效
      • 弹窗特效
      • 其他特效
    • 织梦模板►
      • 科技/电子/数码/通信
      • 文化/艺术/广告/传媒
      • 装修/设计/家居/家具
      • 基建/施工/地产/物业
      • 餐饮/酒店/旅游/票务
      • 食品/果蔬/饮料/日用
      • 服饰/珠宝/礼品/玩具
      • 摄影/婚庆/家政/生活
      • 运动/健身/体育/器材
      • 学校/教育/培训/科研
      • 美容/保健/医院/医疗
      • 金融/财税/咨询/法律
      • 政府/组织/集团/协会
      • 汽车/物流/交通/搬运
      • 机械/设备/制造/仪器
      • 化工/环保/能源/材料
      • 农业/畜牧/养殖/宠物
      • 其他模版
      • IT/软件/信息/互联网
    • 手机模板►
      • 手机APP模板
      • 微信小程序模板
      • wap
    • 网站模板►
      • joomla模板
      • Drupal模板
      • z-blog模板
      • EyouCms模板
      • Bootstrap模板
      • 帝国cms模板
      • CmsEasy模板
      • MetInfo模板
      • 购物商城模板►
        • Shopify主题
        • PrestaShop主题
      • 后台模板
      • 纯HTML模板
      • ecshop模板
      • phpwind模板
      • pbootcms模板
      • phpcms模板
      • wordpress模板
      • discuz模板
    • 教程►
      • 织梦教程
      • Discuz教程
      • WordPress教程
      • Phpcms教程
      • Phpwind教程
      • ECShop教程
      • Joomla教程
      • Drupal教程
      • zblog教程
      • EyouCMS教程
      • 帝国cms教程
      • MetInfo教程
      • CmsEasy教程

      弹窗标题

      这是一条网站公告,可在后台开启或关闭,可自定义背景颜色,标题,内容,用户首次打开关闭后不再重复弹出,此处可使用html标签...