引言

最近在学习node.js 连接redis的模块,所以尝试了一下在虚拟机中安装cent OS7,并安装redis,并使用node.js 操作redis。所以顺便做个笔记。

如有不对的地方,欢迎大家指正!

1、cent OS7 下使用redis

1.1、配置编译环境:

sudo yum install gcc-c++

1.2、下载源码:

wget http://download.redis.io/releases/redis-4.0.11.tar.gz

1.3、解压源码:

tar -zxvf redis-4.0..tar.gz

1.4、进入到解压目录:

cd redis-4.0.

1.5、进入到解压目录: 执行make编译Redis:

make MALLOC=libc

  make命令执行完成编译后,会在src目录下生成6个可执行文件,分别是

  1. redis-server、
  2. redis-cli、
  3. redis-benchmark、
  4. redis-check-aof、
  5. redis-check-rdb、
  6. redis-sentinel

1.6、安装Redis:

make install 

1.7、配置Redis能随系统启动:

./utils/install_server.sh

1.8、关闭防火墙

systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
firewall-cmd --state #查看默认防火墙状态(关闭后显示notrunning,开启后显示running)

2、redis配置

  如果redis客户端和服务器在同一台机子中,可以不配置,如果redis服务器在虚拟机中,客户端在本地系统中,则需要进行配置,否则可能会连接失败

  • 关闭保护模式

  如果不关闭,通过node.js连接时,会连接失败

 config set protected-mode no
  • 设置密码
// 获取密码
config get requirepass // 设置密码
config set requirepass yourpassword

2.1 、redis.conf 的配置信息

  redis.conf 是redis的的配置文件,修改配置文件后,需要重启redis才会生效

1、daemonize 如果需要在后台运行,把该项改为yes

2、pidfile 配置多个pid的地址 默认在/var/run/redis.pid

3、bind 绑定ip,设置后只接受来自该ip的请求

4、port 监听端口,默认是6379

5、loglevel 分为4个等级:debug verbose notice warning

6、logfile 用于配置log文件地址

7、databases 设置数据库个数,默认使用的数据库为0

8、save 设置redis进行数据库镜像的频率。

9、rdbcompression 在进行镜像备份时,是否进行压缩

10、dbfilename 镜像备份文件的文件名

11、Dir 数据库镜像备份的文件放置路径

12、Slaveof 设置数据库为其他数据库的从数据库

13、Masterauth 主数据库连接需要的密码验证

14、Requriepass 设置 登陆时需要使用密码

15、Maxclients 限制同时使用的客户数量

16、Maxmemory 设置redis能够使用的最大内存

17、Appendonly 开启append only模式

18、Appendfsync 设置对appendonly.aof文件同步的频率(对数据进行备份的第二种方式)

19、vm-enabled 是否开启虚拟内存支持 (vm开头的参数都是配置虚拟内存的)

20、vm-swap-file 设置虚拟内存的交换文件路径

21、vm-max-memory 设置redis使用的最大物理内存大小

22、vm-page-size 设置虚拟内存的页大小

23、vm-pages 设置交换文件的总的page数量

24、vm-max-threads 设置VM IO同时使用的线程数量

25、Glueoutputbuf 把小的输出缓存存放在一起

26、hash-max-zipmap-entries 设置hash的临界值

27、Activerehashing 重新hash

  

3、nodejs中操作redis

3.1、  安装redis

// github https://github.com/NodeRedis/node_redis
npm install redis --save

3.2、  简单使用

//引入redis
var redis = require('redis')
// 连接redis服务器
// 连接redis数据库,createClient(port,host,options);
// 如果REDIS在本机,端口又是默认,直接写createClient()即可
client = redis.createClient(6379, '192.168.73.128', {
password: 'lentoo'
}); //错误监听?
client.on("error", function (err) {
console.log(err);
});
client.set('key','value')
client.get('key')

3.3、常用API

  • redis.print

    通过redis的打印api回显

  • set

    像redis中存入一个键值对

client.set('key','value')
// 设置过期时间 10s后过期
client.set('key','value','EX',10)
  • get

    获取在redis中存入的值

  client.get('key') // value
  • hset

    通过hash key 存值

client.hset('hash key','key','value', redis.print)
  • hget

    通过hash key 获取值

client.hget('hash key','key', redis.print)
  • hkeys

    所有的"hash key"

// 遍历哈希表"hash key"
client.hkeys("hash key", function (err, replies) {
console.log(replies.length + " replies:");
replies.forEach(function (reply, i) {
console.log(" " + i + ": " + reply);
});
client.quit();
});
  • hmset

    可同时设置多个key,value

client.hmset('hash 1', 'key', 'value111', 'key2', 'value222', 'key3', 'value3', redis.print)
  • hmget

    可同时获取多个key

client.hmget('hash 1', 'key', 'key2', 'key3', redis.print)
  • publish/subscribe

    发布/订阅

const sub = redis.createClient() // 订阅者
const pub = redis.createClient() // 发布者
var msg_count = 0; sub.on("subscribe", function (channel, count) {
client.publish("a nice channel", "I am sending a message.");
client.publish("a nice channel", "I am sending a second message.");
client.publish("a nice channel", "I am sending my last message.");
}); sub.on("message", function (channel, message) {
console.log("sub channel " + channel + ": " + message);
msg_count += 1;
if (msg_count === 3) {
sub.unsubscribe();
sub.quit();
client.quit();
}
});
  • ready

    redis客户端连接准备好后触发,在此前所有发送给redis服务器的命令会以队列的形式进行排队,会在ready事件触发后发送给redis服务器

client.on('ready',function(){
console.log('ready');
})
  • connct

    客户端在连接到服务器后触发

client.on('connect',function(){
console.log('connect');
})
  • reconnecting

    客户端在连接断开后重新连接服务器时触发

client.on('reconnecting ', function (resc) {
console.log('reconnecting',resc);
})
  • error

    错误监听

client.on("error", function (err) { console.log(err); });
  • end

    连接断开时触发

client.on('end',function(){
  console.log('end')
})
  • createClient

    创建一个链接

redis.createClient([options])
redis.createClient(unix_socket[, options])
redis.createClient(redis_url[, options])
redis.createClient(port[, host][, options])

3.4 options 对象属性

属性 默认值 描述
host  127.0.0.1 redis服务器地址
port 6379 端口号
connect_timeout 3600000 连接超时时间 以ms为单位
password null 密码

在centos7中安装redis,并通过node.js操作redis的更多相关文章

  1. centos7中安装、配置、验证、卸载redis

    本文介绍在centos7中安装.配置.验证.卸载redis等操作,以及在使用redis中的一些注意事项. 一 安装redis 1 创建redis的安装目录 利用以下命令,切换到/usr/local路径 ...

  2. [Node.js]操作redis

    摘要 在实际开发中,免不了要操作mysql,mongodb,redis等数据存储服务器.这里先简单介绍如何操作redis. 一个例子 关于redis服务端的安装这里不再介绍,重点不在这里.感兴趣的可以 ...

  3. [Node.js]31. Level 7: Redis coming for Node.js, Simple Redis Commands

    Let's start practicing using the redis key-value store from our node application. First require the  ...

  4. node js 操作redis promise

    连接 redis = require('redis') var client = redis.createClient('6379', '127.0.0.1'); client.on('connect ...

  5. [Node.js]操作mysql

    摘要 上篇文章介绍了node.js操作redis的简单实例,这里介绍如何操作mysql. 安装 安装mysql模块 cnpm install mysql 一个例子 新建一个mysql.js的文件,代码 ...

  6. 在centos7中安装Robot Framework

    安装前景介绍: 最初,我们是在Windows环境下搭建Robot Framework来对我们的服务进行接口测试的(想知道如何在Windows下安装Robot Framework,可以参考我同事的博客h ...

  7. centos7中安装mongodb3.6

    centos7中安装mongodb3.6 首先更新系统 yum -y update 1.安装Mongodb 编辑Mongodb安装源 vim /etc/yum.repos.d/mongodb-org- ...

  8. 在Centos7中安装elasticsearch5.5

    在Centos7中安装elasticsearch5.5 第一步:必须要有jre支持 elasticsearch是用Java实现的,跑elasticsearch必须要有jre支持,所以必须先安装jre ...

  9. centos7中安装mysql

    centos7中安装mysql网上已经很多资源了,我就不在赘述了.我这里只是记录下我安装的时候出现的一些问题. 原文:https://www.cnblogs.com/bigbrotherer/p/72 ...

随机推荐

  1. bzoj2212 Tree Rotations 线段树合并+动态开点

    题目传送门 思路: 区间合并线段树的题,第一次写,对于一颗子树,无论这个子树怎么交换,都不会对其他子树的逆序对造成影响,所以就直接算逆序对就好. 注意叶子节点是1到n的全排列,所以每个权值都只会出现1 ...

  2. Nginx 安装--图片服务器搭建

    1.  nginx 需要依赖以下模块: gzip模块需要 zlib 库 rewrite模块需要 pcre 库 ssl 功能需要openssl库 1.1.安装pcre 1.         获取pcre ...

  3. 移动距离--dfs-蓝桥杯

    题目描述: X星球居民小区的楼房全是一样的,并且按矩阵样式排列.其楼房的编号为1,2,3... 当排满一行时,从下一行相邻的楼往反方向排号. 比如:当小区排号宽度为6时,开始情形如下:   1   2 ...

  4. 切换myEclipse工作空间后设置,myEclipse添加注释/设置豆沙背景颜色/调节字体大小

    一.添加注释 操作位置: 注释规范 Files/** * @文件名称: ${file_name} * @文件路径: ${package_name} * @功能描述: ${todo} * @作者: ${ ...

  5. zabbix CentOS7 配置安装

    一,LAMP+zabbix环境安装 官网: https://www.zabbix.com/download rpm -ivh https://mirrors.aliyun.com/zabbix/zab ...

  6. 案例45-crm练习改写客户列表使用struts2&OGNL

    1 修改CustomerAction代码 2 修改jsp/customer/list.jsp代码 <%@ page language="java" contentType=& ...

  7. jQuery 菜单小练习(实现点击和移动鼠标效果)

    这个代码的练习是点击事件后 如何用jQuery联动的方式找到相关标签 实现的结果是点击菜单一或者菜单二等 会出现相关菜品,并隐藏其他菜品.鼠标移动才菜品上会在右侧框内出现相关菜品的价格.实现特殊的效果 ...

  8. jquery的方法总结

    1.1.概述随着WEB2.0及ajax思想在互联网上的快速发展传播,陆续出现了一些优秀的Js框架,其中比较著名的有Prototype.YUI.jQuery.mootools.Bindows以及国内的J ...

  9. Log4j和Slf4j的比较

    简单日记门面(simple logging Facade for java)SLF4J是为各种loging APIs提供一个简单统一的接口,从而使得最终用户能够在部署的时候配置自己希 望的loging ...

  10. SpringSecurity 3.2入门(2)环境搭建

    由于目前Spring官方只提供Meven的下载方式,为了能以最快的速度入门使用框架,这里提供百度网盘下载链接. 注:本入门教程默认已经配置成功SpringMVC框架. 1.web.xml配置 < ...