【二】redis概述

redis是开源的,基于键值对的存储服务系统。

特性

1.高性能:

    官方数据每秒可以实现10万次读写,

    它将数据存在内存中。存储介质速度又快到慢:register寄存器、L1 cache一级缓存、L2cache 二级缓存、main memory内存、local disk本地磁盘、remote disk远程磁盘。

    它由C语言来实现。

2.单线程。

一次只运行一条命令。

使用的时候,避免在生产上用到长命令:keys,flushall,flushdb,slow lua script,mutil/exec,operate big value(collection)。

由于单线程执行命令的特性,redis很适合用来做分布式系统中的唯一id

【二】redis概述

3.多种数据结构:

    主要数据结构5种:string、hash、list、set、zset。

    衍生数据结构:新版本中还提供了BigMaps位图(本质是字符串)、HyperLogLog(超小内存唯一值计数、有误差)本质是字符串)、GEO(地理信息定位、本质是有序集合zset)

    数据结构与内部编码

【二】redis概述

4.持久化:

    redis中所有数据保存在内存中,对数据的更新将异步的保存到磁盘上。有AOF和RDB两种持久化方式。

5.多种语言编辑:

    java、php、python、ruby、lua、node

6.主从复制。

7.高可用(2.8开始sentinel哨兵模式)、分布式(3.0开始redis cluster)。

8.功能丰富:

    发布/订阅、lua脚本、简单事务。pipeline。

Redis的典型应用场景:

1.缓存

2.计数器(incr,如用在视频播放计算,微博转发量计算)

3.消息队列系统

4.排行榜(zset)

5.社交网络(粉丝数、关注数)

6.实时系统(垃圾邮件处理系统,过滤器、用位图实现布隆过滤器)