Redis 介绍

是一个非关系数据库 它可以存储键与五种不通类型的值之间的银蛇,可以将存储在内存的键值对数据持久化到硬盘,可以使用复制特性来扩展读性能,还可以使用客户端分片来扩展写性能,

数据库与缓存服务器的特性与个功能

名称类型数据与存储选项查询类型附加功能
Redis非关系数据库字符串,列表,集合,散列表,有序集合每种数据类型有自己的专属命令,另外还有批量操作和不完全的事务支持发布与订阅,主从复制(master/slave replication),持久化,脚本(存储过程,stored procedure)
Memcached非关系数据键值之间映射创建,读取,更新,删除命令以及其他几个命令为提升性能而设的多线程服务器
Mysql关系数据每个数据库可以包含多个表,每个表可以包含多个行;可以处理多个表的视图(view);支持空间(spatial)和第三方扩展支持ACID性质(需要使用InnoDB),主从复制和主主复制 (master/master replication)
PostgreSql关系数据每个数据库可以包含多个表,每个表可以包含多个行;可以处理多个表的视图;支持空间和第三方扩展;支持可定制类型SELECT、INSERT、UPDATE、DELETE、内置函数、自定义的存储过程支持ACID性质,主从复制,由第三方支持的多主复制(multi-master replication)
MongoDB非关系文档存储每个数据库可以包含多个表,每个表可以包含多个无schema的BSON创建,读取,更新,删除,条件查询支持map-reduce操作,主从复制,分片,空间索引(spatial index)

使用Redis的理由

  • 速度快,完全基于内存,使用C语言实现,网络层使用epoll解决高并发问题,单线程模型
  • 丰富的数据类型,Redis有8种数据类型,常用类型 String、Hash、List、Set、 SortSet 这5种
  • 有操作都是原子性的,要么成功执行要么失败完全不执行。单个操作是原子性的。多个操作也支持事务,即原子性,通过MULTI和EXEC指令包起来。
  • 丰富的特性 支持 publish/subscribe, 通知, key 过期等等特性。

Redis 数据结构

类型

类型存储的值存储范围应用场景
StRING字符串,整数,或者是浮点数一个键最大能存储 512MB图片
LIST一个链表,链表上的每个节点都包含了一个字符串列表最多可存储 232 - 1 元素 (4294967295, 每个列表可存储40多亿)最新消息排行等功能(比如朋友圈的时间线) 消息队列
SET包含字符串的无序收集器,并且被包含的每个字符串都是独一无二集合中最大的成员数为 232 - 1(4294967295, 每个集合可存储40多亿个成员)共同好友,利用唯一性,统计访问网站的所有独立ip ,好友推荐时,根据tag求交集,大于某个阈值就可以推荐
HASH包含键值对的无序散列表每个 hash 可以存储 232 -1 键值对(40多亿)存储、读取、修改用户属性
ZSET字符串成员与浮点数分值之间的有序隐射,元素的排列顺序有分值的大小决定同集合1、排行榜 2、带权重的消息队列
最后修改:2023 年 02 月 06 日 05 : 15 PM
如果觉得我的文章对你有用,请随意赞赏