CNode

关于redis复用的异或

问答
Zzacard-orc发布于11 年前最后回复11 年前7 回复5632 浏览0 收藏

redis是单进程单线程+事件触发+无锁。但在使用node的redis插件,配合EXPRESS时,因为redis插件没有mysql pool的概念,所以来了顾虑。 如果把var redis定义在function外,把事务放在function内,虽然exports后是局部实例变量,但在单个JS里面是全局变量下,是否因为多并发会产生数据污染 如果把var redis定义在function内,把事务放在function内,情感上会保证redis是局部变量,但是否频繁开启和关闭连接redis会有性能影响?

不知各位路过的大侠是怎么的看法?平常是如何使用的?有发生过数据污染吗?

官方的用法: var redis = require("redis"), client = redis.createClient();

查看回复

回复 (7)

A
Acceptedlc#1·11 年前

mark 自豪地采用 CNodeJS ionic

Z
zacard-orc#2·11 年前

有大师指导吗?

I
idreamshen#3·11 年前

数据污染是什么意思?nodejs单线程,不存在污染一说吧?

L
luinlee#4·11 年前

没太听明白,对第二个问题,Redis 的连接很轻量,但实际上也不需要主动断开 Redis 连接。数据污染是啥意思?

Z
zacard-orc#5·11 年前

就是所官方的用法就是NEW一个CLINET出来,不像MYSQL有链接池的概念。那既然是一个CLINET,会不会在多并发的情况下,出现后面要传入的数据覆盖前面要传入的数据(数据污染),或者说是CLINET变量阻塞争抢的情况。所以想问问,大家用的时候是不是都是在全局只NEW一个CLINET,还是在FUNCTION内按需NEW一个CLIENT出来

参与回复
登录后即可参与回复。登录