我第一次使用 Redis,用 Node.js 后端构建缓存层。我正在使用Redis云。我按照文档设置了云帐户并使用此代码连接到云。
import {createClient} from 'redis';
// Setup Redis client
const redisClient = createClient({
password: process.env.REDIS_PASSWORD,
socket: {
host: process.env.REDIS_HOST,
port: process.env.REDIS_PORT
}
})
然后在index.js中,
await redisClient.connect()
.then(() => console.log("CONNECTED TO REDIS"))
.catch((e) => console.error("Redis connection error: ", e))
我还在我的 Windows 机器上使用 wsl2 安装了 Redis。问题是我必须使用
redis-server
命令在我的 redis-cli 上启动 Redis 本地服务器,以在 120.0.0.0 / 6379 端口上启动它,有点像我启动 Node.js 服务器的方式。如果我不在本地启动 redis 服务器,我会收到 Redis connection error
消息。
我不明白的是,如果我连接到Redis Cloud,为什么我需要在本地运行它?另外,我是否需要在某个地方(例如 Node.js)托管我的 Redis 服务器以进行生产?
另外,如果我在 Redis 中设置键值并设置过期时间,
const key = `${userId}`
const data = await redisClient.get(key)
if (data) {
return res.status(200).json({user: JSON.parse(data)});
}
const user = await User.findById(userId)
await redisClient.setEx(cacheKey, 10, JSON.stringify(user))
键值在过期时间内存储在我的本地 Redis 数据库中,但不在我的 Redis 云数据库中。再说一次,为什么会这样呢?我想从我的 Redis Cloud DB 中设置和获取所有内容。
我是第一次实现 Redis,所以任何帮助或建议以及如何改进代码都会非常有帮助。
p.s:我列出了在日常使用中可能派上用场的 redis 操作列表,可能对您有用 https://github.com/xogoodnow/Redis_Cluster/blob/main/Administarion_Guide/Redis_Operations_Guide.md
祝你好运