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
Linux安装Redis
https://redis.io/进入redis官网下载
- 由于
redis
需要C语言环境支持,先安装C语言环境
yum install gcc
- 将下载的
redis
压缩文件放到 /opt
路径下 - 解压redis压缩文件
tar -zvxf redis-6.2.5.tar.gz
- 进入redis-6.2.5 目录中,执行
make
命令(必须安装gcc,否则会报错) - 执行
make install
命令· - 默认安装目录为
/usr/local/bin
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常见的功能
- 数据缓存功能
- 分布式锁的功能
- 支持数据持久化
- 支持事务
- 支持消息队列