nodejs redis 小试牛刀
一、环境安装
书接上文,浅学Redis之后,服务器已经安装Redis了,用 nodejs 链接 redis 之前,先安装 nodejs 环境。
1、安装fnm
(1)压缩包fnm-linux.zip搞到服务器上,我放在root里。
(2)解压、设置权限
unzip fnm-linux.zip
chmod 777 fnm
(3)设置环境变量,添加到/etc/profile文件末尾,配置生效
export PATH=$PATH:/root
source /etc/profile
(4)添加到~/.bashrc文件末尾
eval "$(fnm env --use-on-cd --shell bash)"
source ~/.bashrc
查看fnm版本命令验证是否安装成功
fnm --version
fnm 1.37.2
2、下载并安装 Node.js
fnm use --install-if-missing 20
3、验证 Node.js 版本
node -v
node: /lib64/libm.so.6: version `GLIBC_2.27' not found (required by node)
node: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by node)
node: /lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by node)
node: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by node)
node: /lib64/libc.so.6: version `GLIBC_2.28' not found (required by node)
node: /lib64/libc.so.6: version `GLIBC_2.25' not found (required by node)
4、安装依赖前,先换阿里云yum源(换过的请跳过)
(1)更换阿里云yum源
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
(2)查看你安装的scl
yum list installed|grep "scl"
(3)删除scl重新安装
yum remove centos-release-scl.noarch
yum remove centos-release-scl-rh.noarch
yum install -y centos-release-scl centos-release-scl-rh
(4)配置scl国内源阿里云
文件 CentOS-SCLo-scl.repo
[centos-sclo-sclo]
name=CentOS-7 - SCLo sclo
baseurl=https://mirrors.aliyun.com/centos/7/sclo/x86_64/sclo/
gpgcheck=0
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo
文件 CentOS-SCLo-scl-rh.repo
[centos-sclo-rh]
name=CentOS-7 - SCLo rh
baseurl=https://mirrors.aliyun.com/centos/7/sclo/x86_64/rh/
gpgcheck=0
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo
(5)清理缓存
yum clean all && yum makecache
坑我踩过了,5、6、7、8 按这个顺序安装
5、升级 gcc(默认为4 升级为8)
yum install -y centos-release-scl
yum install -y devtoolset-8-gcc*
mv /usr/bin/gcc /usr/bin/gcc-4.8.5
ln -s /opt/rh/devtoolset-8/root/bin/gcc /usr/bin/gcc
mv /usr/bin/g++ /usr/bin/g++-4.8.5
ln -s /opt/rh/devtoolset-8/root/bin/g++ /usr/bin/g++
6、升级 make(默认为3 升级为4)
wget http://ftp.gnu.org/gnu/make/make-4.3.tar.gz
tar -xzvf make-4.3.tar.gz && cd make-4.3/
./configure --prefix=/usr/local/make --disable-dependency-tracking
make && make install
cd /usr/bin/ && mv make make.bak
ln -sv /usr/local/make/bin/make /usr/bin/make
7、升级 glibc
wget http://ftp.gnu.org/gnu/glibc/glibc-2.28.tar.gz
tar xf glibc-2.28.tar.gz
cd glibc-2.28/ && mkdir build && cd build
../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin
make && make install
8、升级 libstdc++
wget http://www.vuln.cn/wp-content/uploads/2019/08/libstdc.so_.6.0.26.zip
unzip libstdc.so_.6.0.26.zip
cp libstdc++.so.6.0.26 /lib64/
cd /lib64
cp libstdc++.so.6 libstdc++.so.6.bak
rm -f libstdc++.so.6
ln -s libstdc++.so.6.0.26 libstdc++.so.6
“降龙8掌”打完了,收工
node -v
v20.17.0
二、服务端
1、初始化文件夹,装包:
- express Express.js简洁而灵活的 Node.js 框架
- cors 跨域中间件
- redis 客户端
- pm2 一个守护进程管理工具
2、修改配置
package.json -> scripts -> 添加:"start": "node ./index.js"
pm2安装后在项目目录下创建启动配置文件 ecosystem.config.js,代码如下:
module.exports = {
apps: [
{
name: 'first-api',
script: './index.js',
},
],
}
3、新建 index.js
const express = require('express');
const app = express();
const cors = require('cors');
const redis = require("redis");
const redisClient = redis.createClient({
url: 'redis://default:密码@IP:Port'
});
redisClient.on('error', err => console.log('Redis Client Error', err));
redisClient.connect();
// 使用cors中间件
app.use(cors());
app.get("/", (req, res) => {
res.send("Hello World");
})
app.get("/redis/keys", async (req, res) => {
var value = await redisClient.get("test")
res.send(value);
})
app.listen(3001, () => {
console.log("Server is running on port 3001");
})
4、pm2 start --watch,水灵灵启动

三、前端
1、一个请求的事
axios.get('http://localhost:3001/redis/keys').then(function (response) {
alert(response.data);
})

nodejs redis 小试牛刀的更多相关文章
- nodejs + redis/mysql 连接池问题
nodejs + redis/mysql 连接池问题 需不需要连接池 连接池的作用主要是较少每次临时建立连接所带来的开销.初步一看,nodejs运行单线程上,它不能同时使用多个连接,乍一看是不需要连接 ...
- nodejs redis遇到的一个问题解决
v ar redis = require("redis"), client = redis.createClient({host:'tc-arch-osp33.tc', port: ...
- nodejs redis
0. install redis library for node npm install redis 1.node command example > var _redis = require ...
- 使用NODEJS+REDIS开发一个消息队列以及定时任务处理
作者:RobanLee 原创文章,转载请注明: 萝卜李 http://www.robanlee.com 源码在这里: https://github.com/robanlee123/RobCron 时间 ...
- Ubuntu安装Python2.7,nodejs,Redis
安装Python2.7 sudo add-apt-repository ppa:fkrull/deadsnakes-python2.7sudo apt-get update sudo apt-get ...
- nodejs+redis使用
安装 linux安装及配置之前写过了http://www.cnblogs.com/zycbloger/p/6226682.html windows安装 下载地址:https://github.com/ ...
- nodejs redis 发布订阅机制封装
最近项目使用redis,对publish 和 subscribe的使用进行了了解,并进行了封装. var config = require('../config/config'); var log = ...
- 如何使用NODEJS+REDIS开发一个消息队列
作者: RobanLee 原创文章,转载请注明: 萝卜李 http://www.robanlee.com MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法.应 ...
- 分布式锁--Redis小试牛刀
参考文章: Redis分布式锁的正确实现方式 分布式锁看这篇就够了 在这两篇文章的指引下亲测 Redis分布式锁 引言 分布式系统一定会存在CAP权衡问题,所以才会出现分布式锁 什么是CAP理论? 为 ...
- Nodejs Redis 全部操作方法
安装 npm install redis --save demo var redis = require('redis'); var client = redis.createClient('637 ...
随机推荐
- css 样式 element.style 覆盖问题
问题: 我们在写网页定制样式的时候发现展示效果跟我们预想的不一样? 打开F12一看原来是element.style 覆盖的我定义的效果. 解决: 只要在定义的内容后面加上 !important 就行啦 ...
- linux小常识
一.一般来说著名的linux系统基本上分两大类:1 RedHat系列:Redhat.Centos.Fedora等2 Debian系列:Debian.Ubuntu等RedHat 系列:1 常见的安装包格 ...
- 3d格式介绍之OBJ格式
OBJ格式是一种用于3D模型的文件格式,全称为Wavefront OBJ.它由Wavefront Technologies公司开发,最初用于其高级视觉动画软件,但后来广泛应用于各种3D图形软件中. 本 ...
- JVM学习笔记之栈区
JVM学习笔记之栈区 本文主要内容: 栈是什么?栈帧又是什么?在JVM中,main方法调用say方法后,是怎么运行的?本文将详细讲解栈.希望大家学了之后,对栈有更深的了解. 心法:在JVM中,栈管运行 ...
- springboot 静态文件夹
正常这个很久了,不需要写,但是好几年没有写这个相关的,都忘了,好记性不如烂笔头 spring: resources: static-locations: file:D:\\test #对应服务器内映射 ...
- Go plan9 汇编:内存对齐和递归
Go plan9 汇编系列文章: Go plan9 汇编: 打通应用到底层的任督二脉 Go plan9 汇编:手写汇编 Go plan9 汇编:说透函数栈 0. 前言 在 Go plan9 汇编系列文 ...
- 基于Service Worker实现WebRTC局域网大文件传输能力
基于Service Worker实现WebRTC局域网大文件传输能力 Service Worker是一种驻留在用户浏览器后台的脚本,能够拦截和处理网络请求,从而实现丰富的离线体验.缓存管理和网络效率优 ...
- 【论文解读】Faster sorting algorithm
一.简要介绍 基本的算法,如排序或哈希,在任何一天都被使用数万亿次.随着对计算需求的增长,这些算法的性能变得至关重要.尽管在过去的2年中已经取得了显著的进展,但进一步改进这些现有的算法路线的有 ...
- [C++] Rander
注 这个Rander对单个数据的平均分散不太优秀,但是获取大量数据十分平均 当前版本 2.0 for Windows 功能 int rander::reset() 按默认大小重置随机数序列,返回默认大 ...
- USB3.0与USB2.0编码方式的区别
首先,USB3.0传输的编码方式和USB2.0本质上是不同的. 1.USB3.0的编码方式 USB 3.0采用的是8b/10b编码方式,由于高速传输,信号干扰的问题,USB 3.0采用 8/10bit ...