Redis的基本介绍与使用

Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。为了保证效率,数据都是缓存在内存中,redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。(来源百科)对于web应用优化提升性能,首要是要优化与IO相关的操作,也就是主要对数据库进行优化,一般方式有:合理的设计数据库结构,和对SQL语句的优化,建立集群以及读写分离。二:引入缓存机制(把数据从资源消耗比较高的地方转移消耗的地方),提高的办法是,更快的存储介质(如ssd),将数据存储在内存。

官网:https://redis.io/
安装(linux:centos7.2):

yum -y install redis

成功:

redis-server -v

在这里插入图片描述
一:基本功能:数据缓存 , 数据存储,消息中介
二:基本工具
a.服务启动工具
直接启动:

 redis-server

Redis的基本介绍与使用_第1张图片守护进程启动:
修改配置文件:/etc/redis.conf,搜索daemonize 将默认no改为yes。然后重载配置文件。端口默认:6379。

vim /etc/redis.conf

在这里插入图片描述
重载配置文件:

redis-server /etc/redis.conf

查询一下进程:

ps aux | grep redis

b.命令行的客户端工具
默认连接(本地)

redis-cli

在这里插入图片描述
指定连接(可查一下帮助)

redis-cli -h 127.0.0.1 -p 6379

在这里插入图片描述
基本操作(以字符串存储):
列出所有的键。

 keys *

添加key-value(keyname: haha value:12)

set haha 12

获得一个key的value:

get haha

Redis的基本介绍与使用_第2张图片删除key(这里删除 wbsite)

del website

Redis的基本介绍与使用_第3张图片
C.GUI工具(百度)

三:在node.js中使用redis
安装redis模块

npm install redis

简单例子:

var redis = require('redis'); //redis模块
var client = redis.createClient(6379,'localhost'); //连接数据库
client.set('hello','this is avalue'); //增加key-value

对List操作:
添加: lpush 和 rpush ,看两种方法可能有点晕,它们分别指的是从头部(左边)或尾部(右边)插入,最多可包括2^32-1(4294967295)个元素。
先从头部插入(website为列表名):

127.0.0.1:6379>  lpush website  google baidu csdn 

从后边插入

127.0.0.1:6379> rpush website php c++ c node,js

看一下元素:
LRANGE key start stop

127.0.0.1:6379> lrange website 0 10 

Redis的基本介绍与使用_第4张图片看下长度

127.0.0.1:6379> llen website

在这里插入图片描述改变一下索引为1的值:

lset website 1 "dangdang"

看一下索引为1的值:

lindex website 1

删除:

从头部移除个元素

lpop website

从尾部移除个元素

rpop website

删除索引为1的值

127.0.0.1:6379> lrem website 1 "baidu"

更多用法,可以看官方文档

set(集合)的用法
Set 是 String 类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。Redis 中集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。集合中最大的成员数为 232 - 1 (4294967295)
node.js

var redis = require('redis');
var client = redis.createClient(6379,'localhost');

client.sadd('testSet',1);  //向名为testSet添加内容
client.sadd('testSet',1000);
client.sadd('testSet',100);
client.sadd('testSet','google');
client.sadd('testSet','baidu');
client.smembers('testSet',function(err,v){
    console.log('client.smembers err,v:',err,v);
});//遍历成员,异步操作

在这里插入图片描述
消息中介:
发布消息

var redis =require ('redis');
var client = redis.createClient(6379,'localhost');
client.publish('testPublish','hello redis');//频道 testPublish 消息 hello redis 

订阅

var redis = require('redis');
var client = redis.createClient(6379,"localhost");
client.subscribe("testPublish");//订阅频道
//监听,获取频道和消息
client.on('message',function(channel,msg){
    console.log( 'client.on message,channel:',channel,'message:',msg);
});

你可能感兴趣的:(nodejs,redis,数据库)