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

c  redis开发 redis用什么语言开发_redis

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适用哪些场景

c  redis开发 redis用什么语言开发_有序集合_02

Redis适用的场景

  1. 缓存:减轻MySQL的查询压力,提升系统的性能
  2. 排行榜:利用Redis的SortSet(有序集合)实现
  3. 计算器/限速器:利用Redis中原子性的自增操作,可以统计类似用户点赞数、用户访问量等。如果使用MySQL,频繁的读写会带来相当大的压力;限速器比较典型的使用场景是限制某个用户访问某个API的频率,常用的有抢购时,防止用户疯狂点击带来不必要的压力。
  4. 好友关系:利用集合的一些命令,比如交集、并集、差集等,常用来解决一些共同好友之类的功能。
  5. 消息队列:除了RRedis自身的发布/订阅模式,还可以利用List来实现一个队列机制,比如:到货通知、邮件发送之类的需求,不需要高可靠,但是会带来非常大的DB压力,此时就可以用List来完成异步解耦。
  6. Session共享:Session是保存在服务器中的文件中,如果是集群服务,同一个用户过来可能落在不同机器上,会导致用户频繁登录;采用Redis保存Session后,无论用户落在哪台机器上都能够获取到对应的Session信息。

Redis不适合的场景

数据量太大、数据访问频率太低的业务都不适合使用Redis,数据太大会增加成本,访问频率太低,保存在内存中纯属浪费资源。

Redis常见的功能

  1. 数据缓存功能
  2. 分布式锁的功能
  3. 支持数据持久化
  4. 支持事务
  5. 支持消息队列