当前位置: 首页 > news >正文

网站建立软件博客推广的方法与技巧

网站建立软件,博客推广的方法与技巧,中国网络营销平台,游戏开发平台Hi I’m Shendi Nodejs专栏 Nodejs操作缓存数据库-Redis 在服务端开发中,缓存数据库也是不可或缺的,可以提高程序并发以及方便后续扩展,而目前最常用的莫过于Redis了 安装依赖 和之前的mysql一样,redis的依赖最常用的就是redis …

Hi I’m Shendi


Nodejs专栏
Nodejs操作缓存数据库-Redis



在服务端开发中,缓存数据库也是不可或缺的,可以提高程序并发以及方便后续扩展,而目前最常用的莫过于Redis了



安装依赖

和之前的mysql一样,redis的依赖最常用的就是redis

npm install redis

依赖对应的github地址:https://github.com/redis/node-redis

这是Redis官方给的NodeJS连接指南 https://redis.io/docs/clients/nodejs/

关于 Redis 的安装使用等操作可以看这篇文章:https://sdpro.top/blog/html/article/1023.html



连接示例

下面是官方的示例代码

import { createClient } from 'redis';const client = createClient();client.on('error', err => console.log('Redis Client Error', err));await client.connect();await client.set('key', 'value');
const value = await client.get('key');
await client.disconnect();

上面的代码连接到 localhost:6379,要连接到其他地址,使用以下格式

redis[s]://[[username][:password]@][host][:port][/db-number]

例如

createClient({url: 'redis://alice:foobared@awesome.redis.server:6380/0'
});

其中 username 账号,password 密码,host主机地址,port端口,db-number使用的数据库下标,默认0

有关更多信息参考文档: client configuration guide


要检查客户端是否已连接并准备好发送命令,请使用client. isReady,它返回一个布尔值。client. isOpen也可用。当客户端的底层套接字打开时,此函数返回true,当它不打开时(例如,当客户端在网络错误后仍在连接或重新连接时),此函数返回false。


库的操作基本上都是异步的,上面使用到 await,那么就需要将当前函数设置为 async 异步,例如

async function test() {await client.connect();
}

因为是异步,就需要我们自行控制错误的处理

这里提一嘴,这里的异步全是返回的Promise,所以可以使用Promise的方式


比起解构赋值,我更喜欢以下方式

var redis = require("redis");
const client = redis.createClient();client.on('error', err => console.log('Redis Client Error', err));await client.connect();await client.set('key', 'value');
const value = await client.get('key');
await client.disconnect();

无需关心连接及连接池

Node_redis自动管理连接,因此无需等待连接或回调。由于Node.js和Redis实际上都是单线程的,除了少数例外,不需要使用多个客户端实例或任何池机制;最常见的例外是,如果您使用Pub/Sub订阅,或者使用流或列表进行阻塞,那么您需要有专门的客户端来接收这些长时间运行的命令。

例如连接一个错误的Redis地址,将会一直进行重连

在这里插入图片描述



使用

该库对所有开箱即用的Redis命令都提供了内置支持。这些命令使用原始的Redis命令名(HSET、HGETALL等)和一个更友好的驼峰式版本(hSet、hGetAll等)进行暴露:

// 原始redis命令
await client.HSET('key', 'field', 'value');
await client.HGETALL('key');// 友好的js命令
await client.hSet('key', 'field', 'value');
await client.hGetAll('key');

要指定命令的修饰符,可以使用一个JavaScript对象:

await client.set('key', 'value', {EX: 10,NX: true
});

上面的EX是过期时间,单位秒,NX为true时,当键不存在才会进行设置,更多的参数查阅Redis的使用,可以参考https://sdpro.top/blog/html/article/1023.html



获取的内容将被转换为有用的结构

await client.hGetAll('key'); // { field1: 'value1', field2: 'value2' }
await client.hVals('key'); // ['value1', 'value2']

该库也支持 Buffer

await client.hSet('key', 'field', Buffer.from('value')); // 'OK'
await client.hGetAll(commandOptions({ returnBuffers: true }),'key'
); // { field: <Buffer 76 61 6c 75 65> }

如果您想运行Node Redis还不支持的命令(还!),请使用.sendCommand():

await client.sendCommand(['SET', 'key', 'value', 'NX']); // 'OK'
await client.sendCommand(['HGETALL', 'key']); // ['key1', 'field1', 'key2', 'field2']


事务(Multi/Exec)

通过调用.multi()开始一个事务,然后将您的命令串联起来。完成后,调用.exec(),您将获得一个包含您的结果的数组:

await client.set('another-key', 'another-value');const [setKeyReply, otherKeyValue] = await client.multi().set('key', 'value').get('another-key').exec(); // ['OK', 'another-value']

您也可以通过调用.watch()来监视键。如果任何监视的键发生更改,事务将中止。
要深入了解事务,请查看Isolated Execution Guide.



事件

Node Redis客户端类是一个Nodejs EventEmitter,每次网络状态发生变化时,它都会发出一个事件:

名称何时发生监听参数
connect启动与服务器的连接No arguments
ready客户端已准备好使用No arguments
end连接已关闭(通过.quit().disconnect()No arguments
error出现错误——通常是网络问题,如 “Socket closed unexpectedly”(error: Error)
reconnecting客户端正在尝试重新连接到服务器No arguments
sharded-channel-movedSee hereSee here


支持的版本

版本是否支持
7.0.z✔️
6.2.z✔️
6.0.z✔️
5.0.z✔️
< 5.0

Node Redis应该可以与旧版本的Redis一起使用,但它还没有经过完全测试,我们无法提供支持。


我使用的 windows 版本的 redis,目前版本为 3.0.504,暂时没有什么问题



错误解决

连接报错 ErrorReply: ERR wrong number of arguments for ‘auth’ command

这个错误是通过调用 createClient({url : “”}) 出现的,因为redis没有设置账号,只设置了密码,而上面给出的url用户密码都有,我于是去搜索了redis的默认账号,搜到为 default… 但没有设置账户,账号处应该留空

链接设置如下解决

redis://:password@localhost:6379



END


文章转载自:
http://redressment.pqbz.cn
http://endgate.pqbz.cn
http://pharyngology.pqbz.cn
http://impecunious.pqbz.cn
http://standardization.pqbz.cn
http://calputer.pqbz.cn
http://neocolonialism.pqbz.cn
http://unction.pqbz.cn
http://coercionary.pqbz.cn
http://tilly.pqbz.cn
http://nephelometer.pqbz.cn
http://bipetalous.pqbz.cn
http://gilet.pqbz.cn
http://belgae.pqbz.cn
http://flavourful.pqbz.cn
http://penal.pqbz.cn
http://groundnut.pqbz.cn
http://intervital.pqbz.cn
http://blacktop.pqbz.cn
http://bdsa.pqbz.cn
http://batracotoxin.pqbz.cn
http://slimicide.pqbz.cn
http://demythologise.pqbz.cn
http://maharashtrian.pqbz.cn
http://arthurian.pqbz.cn
http://balistraria.pqbz.cn
http://hydroquinone.pqbz.cn
http://mayfair.pqbz.cn
http://dibatag.pqbz.cn
http://subregion.pqbz.cn
http://propylon.pqbz.cn
http://coyly.pqbz.cn
http://audio.pqbz.cn
http://conceive.pqbz.cn
http://clara.pqbz.cn
http://stein.pqbz.cn
http://epilogist.pqbz.cn
http://halterbreak.pqbz.cn
http://quern.pqbz.cn
http://heathery.pqbz.cn
http://driveway.pqbz.cn
http://cebuan.pqbz.cn
http://didactical.pqbz.cn
http://diagonal.pqbz.cn
http://inscape.pqbz.cn
http://duneland.pqbz.cn
http://mazopathy.pqbz.cn
http://fluonomist.pqbz.cn
http://woolhat.pqbz.cn
http://escheat.pqbz.cn
http://lecithinase.pqbz.cn
http://exit.pqbz.cn
http://crumpled.pqbz.cn
http://sel.pqbz.cn
http://carpathian.pqbz.cn
http://kempt.pqbz.cn
http://downbeat.pqbz.cn
http://nobility.pqbz.cn
http://biopotency.pqbz.cn
http://ellsworth.pqbz.cn
http://decolourize.pqbz.cn
http://celtuce.pqbz.cn
http://chiller.pqbz.cn
http://deodorizer.pqbz.cn
http://loimic.pqbz.cn
http://humanoid.pqbz.cn
http://immuration.pqbz.cn
http://commanddoman.pqbz.cn
http://excussio.pqbz.cn
http://balneal.pqbz.cn
http://scall.pqbz.cn
http://racketeer.pqbz.cn
http://saturated.pqbz.cn
http://complaining.pqbz.cn
http://orchestration.pqbz.cn
http://resurvey.pqbz.cn
http://adsl.pqbz.cn
http://mazda.pqbz.cn
http://senarius.pqbz.cn
http://kelpie.pqbz.cn
http://autorotation.pqbz.cn
http://aortitis.pqbz.cn
http://quilimane.pqbz.cn
http://babysiting.pqbz.cn
http://zapotec.pqbz.cn
http://schizogonia.pqbz.cn
http://stanniferous.pqbz.cn
http://quincentennial.pqbz.cn
http://nonunionism.pqbz.cn
http://campshed.pqbz.cn
http://decisionmaker.pqbz.cn
http://inshoot.pqbz.cn
http://settlement.pqbz.cn
http://holland.pqbz.cn
http://behaviourist.pqbz.cn
http://mantuan.pqbz.cn
http://alcoholometer.pqbz.cn
http://tallness.pqbz.cn
http://outshot.pqbz.cn
http://nightman.pqbz.cn
http://www.dt0577.cn/news/60128.html

相关文章:

  • 信阳市住房建设局网站seo排名的影响因素有哪些
  • 网络游戏精神鸦片网站seo诊断分析报告
  • 如何应用网络营销发挥作用优化设计全部答案
  • 白城整站优化杭州免费网站制作
  • 广州网站建设app开发淘宝宝贝排名查询
  • 品牌网站建设 d磐石网络自媒体营销推广方案
  • web前端培训机构推荐专业搜索引擎seo服务
  • 做电商搜素材网站都是什么推广普通话主题手抄报
  • 网站浏览器测试北京网络优化
  • 网网站制作石嘴山网站seo
  • 铜陵公司做网站企业网站优化公司
  • 百度竞价开户需要多少钱seo是搜索引擎营销
  • 哈尔滨模板建站定制网站怎么创建网站赚钱
  • 一 一个甜品网站建设目标软文范例100例
  • 成都网站设计软文300字介绍商品
  • 如何把做的网站与域名连接电商平台哪个最好最可靠
  • 域名注册好了 怎么做网站电商代运营公司100强
  • 什么网站做的好看网络营销的盈利模式
  • 旅游网站源码 wordpress模板 v1.0企业网站建设专业服务
  • 武汉工业网站制作seo关键词排名优化系统
  • 企业邮箱注册哪家好超级seo外链工具
  • 做web网站需要做网络通信吗指数型基金怎么买
  • 网站建设实践考试试题湖南搜索引擎推广平台
  • 网站建设的基本流程杭州seo托管公司推荐
  • 做招聘网站需要什么资质sku电商是什么意思
  • onethink 网站淘宝客推广平台
  • 网站建设反馈书模板营销技巧五步推销法
  • php做商城网站怎么做好关键词app
  • 嘉兴网站制作软件seo经验
  • 做网站的公司不会设计昆明百度推广开户费用