Redis简介
REmote DIctionary Server(Redis)是一个由Salvatore Sanfilippo 写的key-value存储系统,是跨平台的非关系型数据库。 Redis是一个开源的使用ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于内存、分布式、可选持久性的键值对存储数据库,并提供多种语言的API。 Redis 通常被称为数据结构服务器,因为值(value)可以是字符串(String)、哈希(Hash)、列表(list)、集合(sets)和有序集合(sorted sets)等类型。
Windows安装redis
进入Redis-Github的下载链接: https://github.com/tporadowski/redis/releases
Redis 数据类型
五种类型
string | 字符串 |
---|
hash | 散列 | list | 列表 | set | 集合 | zset(sorted set) | 有序集合 |
常见的数据类型操作命令:http://redisdoc.com/
Redis适用哪些场景
Redis适用的场景
- 缓存:减轻MySQL的查询压力,提升系统的性能
- 排行榜:利用Redis的SortSet(有序集合)实现
- 计算器/限速器:利用Redis中原子性的自增操作,可以统计类似用户点赞数、用户访问量等。如果使用MySQL,频繁的读写会带来相当大的压力;限速器比较典型的使用场景是限制某个用户访问某个API的频率,常用的有抢购时,防止用户疯狂点击带来不必要的压力。
- 好友关系:利用集合的一些命令,比如交集、并集、差集等,常用来解决一些共同好友之类的功能。
- 消息队列:除了RRedis自身的发布/订阅模式,还可以利用List来实现一个队列机制,比如:到货通知、邮件发送之类的需求,不需要高可靠,但是会带来非常大的DB压力,此时就可以用List来完成异步解耦。
- Session共享:Session是保存在服务器中的文件中,如果是集群服务,同一个用户过来可能落在不同机器上,会导致用户频繁登录;采用Redis保存Session后,无论用户落在哪台机器上都能够获取到对应的Session信息。
Redis不适合的场景
数据量太大、数据访问频率太低的业务都不适合使用Redis,数据太大会增加成本,访问频率太低,保存在内存中纯属浪费资源。
Redis常见的功能
- 数据缓存功能
- 分布式锁的功能
- 支持数据持久化
- 支持事务
- 支持消息队列
|