redis入门

redis 简单介绍

Redis 是完全开源免费的,遵守 BSD 协议,是一个高性能的 key-value 数据库,它也属于 nosql。 Redis 和 Memcached 类似,都是内存级别的数据缓存,主要用户数据缓存,它支持存储的 value 类型相对 更多,包括 string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和 hash(哈希类型)。
Redis 不仅有丰富的特性(数据持久化到硬盘、 publish/subscribe、 key 过期),还有极高性能;

安装

在安装目录下 redis-cli.exe 表示客户端启动工具 和 redis-server.exe表示服务端启动工具
直接cd 到当前目录 启动 服务和 启动 客户端工具
正确显示端口表示连接成功
redis.windows-service.conf 修改一些配置

使用

  • 在 node 中使用 要 安装; npm install redis --save

// 安装redis   npm i redis --save
// 启动  redis-server.exe redis.windows.conf
// 另一个窗口进入  redis-cli.exe -h 127.0.0.1 -p 6379

const redis = require('redis');

// 创建客户端;
const redisClient = redis.createClient(6379,'127.0.0.1');
// 监控错误;
redisClient.on('error',err=>{
    console.error(err);
})
// 设置 值 获取值;
redisClient.set('myname','kg',redis.print);
redisClient.get('myname',(err,val)=>{
    if(err){
        console.error(err);
        return
    }
    console.log(val);
    // 一旦所有等待中的回复(如果有的话)顺利写入到客户端,连接就会被关闭。
    redisClient.quit();
})

语法和 可存取数据类型

  • Redis 字符串数据类型的相关命令用于管理 redis 字符串值。
查看所有的 key: keys * 
普通设置: set key value 
设置并加过期时间: set key value EX 30     表示 30 秒后过期 
获取数据: get key 
删除指定数据: del key 
删除全部数据: flushall 
查看类型: type key 
设置过期时间: expire key 20     表示指定的 key5 秒后过期

  • Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或 者尾部(右边)
列表右侧增加值: rpush key value 
列表左侧增加值: lpush key value 
右侧删除值: rpop key 
左侧删除值: lpop key 
// lrange key start end 可以获取范围  其中 0 表示列表的第一个元素 1 表示列表的第二个元素
//  -1 表示列表的最后一个元素  -2 表示列表的倒数第二个元素
获取数据: lrange key 0 -1
删除指定数据: del key 
删除全部数据: flushall 
查看类型: type key
  • Redis 的 Set 是 String 类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数 据。它和列表的最主要区别就是没法增加重复值
给集合增数据: sadd key value 
删除集合中的一个值: srem key value 
获取数据: smembers key 
删除指定数据: del key 
删除全部数据: flushall
  • Redis hash 是一个 string 类型的 field 和 value 的映射表,hash 特别适合用于存储对象。
设置值 hmset : hmset zhangsan name "张三" age 20 sex “男”     // 一次设置多个
设置值 hset : hset zhangsan name "张三"                       // 一次设置一个
获取数据: hgetall key
删除指定数据: del key 
删除全部数据: flushall

Redis 订阅发布

  • Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。
  • 夸服务器通讯

一台服务器发布消息

其他多台可以订阅

// 发布
var redis = require("redis"),
    client = redis.createClient(6379,'127.0.0.1');
// 发布
client.publish('testPublish', 'message from publish.js');


// 订阅
var redis = require("redis"),
    client = redis.createClient(6379,'127.0.0.1');
// 监听广播  监听testPublish 这名字的广播;
client.subscribe('testPublish');

client.on('message', function(channel, msg){
    console.log('client.on message, channel:', channel, ' message:', msg); });

原文地址:https://www.cnblogs.com/kgwei520blog/p/13700630.html