首页 >>  正文

队列的应用实例

来源:baiyundou.net   日期:2024-09-23

华为云云耀云服务器L实例评测|在云耀云服务器L实例使用docker安装redis

购买云耀云服务器 L 实例

华为云耀云服务器 L 实例是一款轻量级云服务器,开通选择实例即可立刻使用,不需要用户再对服务器进行基础配置。新用户还有专享优惠,2 核心 2G 内存 3M 带宽的服务器只要 89 元/年,可以点击华为云云耀云服务器 L 实例购买地址去购买云服务器。

购买指导可以查看上一篇文章华为云云耀云服务器 L 实例评测 |云服务器选购

云耀云服务器 L 实例安装 docker

这一部分在上一篇文章中已经详细说明,详见华为云云耀云服务器 L 实例评测|在云耀云服务器 L 实例上安装 Docker,本文不再赘述。

测试 Docker 是否正常运行

# 查看docker版本

docker version

# 测试运行容器

docker run hello-world

看到输出 docker 版本则表示 docker 已经成功安装,此时我们可以继续运行 hello world 的容器,测试容器是否可以正常运行。

如果 Docker 正常运行,就可以看到 docker 在成功创建容器并运行容器后,输出 hello from Docker!

redis 简介

Redis 是一个开源的内存型数据库,也被称为数据结构服务器 nosql。它是一种高性能、非关系型数据库,通常用于缓存和快速存储键值对数据,也可以支持多种复杂的数据结构。

Redis 在许多应用场景中都有应用,比如缓存、会话存储、消息队列、计数器、排行榜、实时分析和发布/订阅系统等。

查看可用的 Redis 版本

可以在 redis 镜像地址: https://hub.docker.com/_/redis?tab=tags,可以这里查找到所有可用的 redis 版本。

同时通过 docker 搜索指令,可以输出 redis 可用版本,供之后 docker 拉取镜像选择版本。

docker search redis

拉取 Redis 镜像

这里拉取的是最新的 redis 镜像,用 latest 标识。也可以根据上面输出的 redis 版本进行指定版本的 redis 镜像拉取。

docker pull redis:latest

查看本地所有镜像

当 redis 镜像下载完成后,我们可以通过 images 命令查看本地所有的 docker 镜像。

docker images

运行 redis 容器

通过 run 命令运行 docker 容器,这里可以使用上面下载好的 redis 镜像,也可以指定本地未下载的 redis 镜像版本,此时 docker 会先执行 pull 命令,下载完 redis 镜像后才执行 run 命令。

docker run -itd --name redis-test -p 6379:6379 redis

参数说明:

-p 6379:6379:映射容器服务的 6379 端口到宿主机的 6379 端口。外部可以直接通过宿主机 ip:6379 访问到 Redis 的服务。

查看运行情况

ps 命令会输出所有的正在运行的 docker 容器

docker ps

进入容器内部,还可以通过 redis-cli 连接测试使用 redis 服务。

docker exec -it redis-test /bin/bash

redis-cli

set name berbai

get name

到此 docker 安装 redis 已经完成啦。

将数据文件映射至宿主机

创建存放 redis 数据的文件夹

mkdir -p ~/i/apps/redis/{conf,data}

下载配置文件

cd ~/i/apps/redis/conf

wget https://raw.githubusercontent.com/antirez/redis/5.0/redis.conf

修改下载的配置文件

sudo vim redis.conf

1.注释 bind 127.0.0.1

2.protected-mode yes 修改成 protected-mode no

3.添加 requirepass yourpassword 【可选】(注:不添加则可以无密码访问)

redis.conf文件修改内容参考如下:

# 注释符号 #

# 1. 注释 bind 127.0.0.1

# 2. protected-mode yes 修改成 protected-mode no

# 3. 添加 requirepass yourpassword (注:不添加则可以无密码访问)

# 注:步骤1和步骤的2目的是为了远程连接redis,如果只需本地访问就无需修改。

# bind 127.0.0.1

protected-mode no

创建并启动容器

如果刚刚创建的容器还存在,那么需要先删除刚刚创建的redis容器,再执行run命令。

docker rm -f redis-test

-f 参数是强制删除,实际生产环境中请谨慎使用。

docker run -d -p 6379:6379 -v ~/i/apps/redis/conf/redis.conf:/usr/local/etc/redis/redis.conf -v ~/i/apps/redis/data:/data --name myredis redis redis-server /usr/local/etc/redis/redis.conf

到此redis容器成功运行,并且使用宿主机的redis配置文件,和外部数据存储能力,删除redis容器后数据仍存在。-----已授权转载

","gnid":"96f22fc80ec027120","img_data":[{"flag":2,"img":[{"desc":"","height":"529","title":"","url":"https://p0.ssl.img.360kuai.com/t01fd43db3d6249b762.jpg","width":"1283"},{"desc":"","height":"564","title":"","url":"https://p0.ssl.img.360kuai.com/t01aa88e067ea0ee86a.jpg","width":"468"},{"desc":"","height":"558","title":"","url":"https://p0.ssl.img.360kuai.com/t01b82f12dea9947d5e.jpg","width":"533"},{"desc":"","height":"639","title":"","url":"https://p0.ssl.img.360kuai.com/t01a9c4261cd8a8a62f.jpg","width":"1277"},{"desc":"","height":790,"title":"","url":"https://p0.ssl.img.360kuai.com/t018dc633e1b3cc9ea0.jpg","width":1280},{"desc":"","height":"194","title":"","url":"https://p0.ssl.img.360kuai.com/t013476bc193feda583.jpg","width":"1256"},{"desc":"","height":"158","title":"","url":"https://p0.ssl.img.360kuai.com/t01ed3db65e07f8e51c.jpg","width":"900"},{"desc":"","height":"130","title":"","url":"https://p0.ssl.img.360kuai.com/t01297d7fdbeab2f886.jpg","width":"1252"},{"desc":"","height":"109","title":"","url":"https://p0.ssl.img.360kuai.com/t01e4fc939a1a55651b.jpg","width":"1283"},{"desc":"","height":"276","title":"","url":"https://p0.ssl.img.360kuai.com/t0167a0454b801c7bca.jpg","width":"1254"},{"desc":"","height":"390","title":"","url":"https://p0.ssl.img.360kuai.com/t017405ea54bec0c5e1.jpg","width":"988"},{"desc":"","height":"267","title":"","url":"https://p0.ssl.img.360kuai.com/t01faa2e00da723ef3b.jpg","width":"1283"},{"desc":"","height":"134","title":"","url":"https://p0.ssl.img.360kuai.com/t013c3dc444cae96bd1.jpg","width":"872"},{"desc":"","height":"75","title":"","url":"https://p0.ssl.img.360kuai.com/t01a2479ccdf469b08c.jpg","width":"1283"}]}],"original":0,"pat":"art_src_0,fts0,sts0","powerby":"pika","pub_time":1699922366000,"pure":"","rawurl":"http://zm.news.so.com/135bb5c11a40d2f98d1b0bf377f12be7","redirect":0,"rptid":"f57a0d844f446c67","rss_ext":[],"s":"t","src":"杨老师技术评论","tag":[{"clk":"kdigital_1:数据结构","k":"数据结构","u":""}],"title":"在云耀云服务器L实例使用docker安装redis

甘矩所3872如何利用jquery 队列实现函数的依次执行? -
郑姬泡13910561231 ______ 本jquery队列函数用法.分享给大家供大家参考.具体实现方法如下:<!DOCTYPE><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><script type="text/javascript" src="jquery-1.9.1.js"></script></head...

甘矩所3872JAVA编程实现简单的队列入队操作!
郑姬泡13910561231 ______ class Element{ int id; String name; Element(int a,String n){ id=a;name=n; } } class SeqQueue{ int first,last,maxsize; Element queue[]; SeqQueue(int i){ maxsize=i; first=last=-1; queue=new Element[i]; } public void clear(){//置空 first=last=-1; } public ...

甘矩所3872请设计一个程序用于描述堆栈和队列存取功能的例子. -
郑姬泡13910561231 ______ // 接口类,命名随意 public interface Access { // 插入方法 void put(char c); // 取出方法 char get(); } // 子类继承接口实现具体的堆栈结构 public class Stack : Access { // 用来存储字符串 private char[] _chars; // 用来栈顶计数 private int ...

甘矩所3872如何使用Redis 做队列操作 -
郑姬泡13910561231 ______ redis 队列操作的例子(php) http://www.jb51.net/article/30093.htm 详细可以参考这个,有图解教程,希望可以帮到你

甘矩所3872请教:使用消息队列是不是不宜直接传输大量的数据 -
郑姬泡13910561231 ______ 首先你要知道队列的应用场景在于哪里.一般在需要后台大量逻辑处理或计算资源的情况下采取队列,同时也可以提高前端的用户体验.举个例子:微博-关注/粉丝,假如你有1000个粉丝,你发了一条微博,这时候1000个粉丝都会收到你的动态,消息队列便适合在这样的场景下用.原因:1 推送1000个动态数据是耗时操作,而发送微博页面需要尽快响应,因此可将该任务放置到队列;2 你发送了微博之后是即时生效的,但粉丝收到微博允许有些许的延迟,通过队列的方式实现也契合该需求;3 针对队列的处理可以采取高性能的集群架构实现,架构上实现了关注点分离,系统在扩展方面更加灵活

甘矩所3872求一些栈和队列的应用实例及答案? -
郑姬泡13910561231 ______ #include "stdio.h" #include "malloc.h" typedef struct node1{ int *data; int top; void init(void); void del(void); int pop(int&); void push(int&); }s; void node1::init(){ data=(int*)malloc(sizeof(int)*100); top=0; } void node1::del(){ free(data); top=0; } int ...

甘矩所3872java 自行编写程序实现队列的效果 -
郑姬泡13910561231 ______ class myqueue { ArrayList<Integer> list = new ArrayList<Integer>(); public boolean add(Integer value) { return list.add(value); } public boolean offer(Integer value) { return list.add(value); } /** * function: 获取但不移除对象的头 为空时抛出异常 * @...

甘矩所3872求一个顺序队列的简单实现(C语言),所谓简单,只有include<stdio.h>,无其它头文件 -
郑姬泡13910561231 ______ #include#include#define NULL 0; typedef struct QNode { int data; struct QNode * next; }QNode,* QueuePtr; typedef struct { QueuePtr front; QueuePtr rear; }LinkQueue; QueuePtr p; int InitQueue(LinkQueue &Q) //构造空队列 { Q.front = Q.rear = (...

甘矩所3872如何应用.NET中的消息队列服务 -
郑姬泡13910561231 ______ 建立一个队列是应用MSMQ的第一步.您可以通过Windows计算机管理控制台中的消息队列选项完成这一操作,或者自己编程建立一个队列.列表A中的C#代码建立了一个新的私有MSMQ消息队列(如果不存在队列),并同时创建一条消息....

甘矩所3872队列类模板的设计与实现 -
郑姬泡13910561231 ______ //队列类模板的设计与实现 #ifndef QUEUE_CLASS #define QUEUE_CLASS #include #include using namespace std; const int MaxQSize = 50; //队列元素最大个数 //类的声明 template class Queue { private: int front, rear, count; //队头指针、队...

(编辑:自媒体)
关于我们 | 客户服务 | 服务条款 | 联系我们 | 免责声明 | 网站地图 @ 白云都 2024