一般在哪里用Redis(一般在哪儿用redis)

Redis(Remote Dictionary Server)是一个开源的使用anysl语言编写的高性能key-value数据库,它可以用于存储各种类型的数据,包括字符串、数组、哈希表、集合和不定期更新的数据。

通常情况下,Redis在企业中被广泛用在如下场景中:

1. 应用的缓存:比较常见的在实现用户鉴权从而限制用户的访问,使用redis进行实现。在这里,token可以作为key,而客户端信息作为缓存中的value,开发者就可以使用api来将token放入键中,再将token信息放入缓存中。这样就可以实现就近访问鉴权,也可以将缓存中存储的用户信息放在临时缓存中,以此减少与数据库的交互,减少数据库的负担。

例如:

const redis = require(‘redis’);

const client = redis.createClient({

host: ‘127.0.0.1’,

port: 6379

});

// 将token放入键中

client.set(‘token’, token);

// 将token信息放入缓存中

client.set(‘userinfo’, userinfo);

2. 应用的计数器:比如商品购买次数,对某个活动的点击次数等都会使用Redis来记录,比如统计一段时间内显示RatingBar的点击次数:

代码示例:

const Redis = require(‘redis’);

// 连接redis

const client = Redis.createClient(6379); // Redis 端口

// 每次用户点击ratingBar,在redis减少一个计数

client.incr(‘ratingBarClicks’, function(err, reply) {

console.log(‘ratingBar clicks: ‘ + reply);

})

3. 应用的消息队列:异步任务把任务通过MQ写入到redis中,然后用另一个线程从中取出。

代码示例:

client.rpush(‘messageQueue’, ‘message content’);

// 从队列中取出任务

client.lpop(‘messageQueue’, function(err, reply) {

console.log(‘message content: ‘ + reply);

})

4. 应用的锁:关于权限的安全性,分布式环境下的互斥性处理,常常会使用Redis的设置key的有效期来实现互斥锁的效果。从而保证任务的安全执行。

代码示例:

// 执行锁定功能

client.set(‘TaskLock’, ‘locking’, ‘EX’, 5);

// 执行解锁功能

client.del(‘TaskLock’);


数据运维技术 » 一般在哪里用Redis(一般在哪儿用redis)