热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

【Redis概览】

1.初识Redis1.1Reis是什么Redis是C语言开发的一个开源的(遵从BSD协议)高性能键值对(key-value)的NoSQL的内存数据库,可以用作缓存、消息中间件等;具

1. 初识Redis 


1.1 Reis是什么


 Redis 是 C 语言开发的一个开源的(遵从 BSD 协议)高性能键值对(key-value)的NoSQL的内存数据库,可以用作缓存、消息中间件等;具有以下特点:

 1. 性能优秀,数据在内存中,读写速度非常快,支持并发 10W QPS;

 2. 单进程单线程,是线程安全的,采用 IO 多路复用机制;

 3. 丰富的数据类型,支持字符串(strings)、散列(hashes)、列表(lists)、集合(sets)、有序集合(sorted sets)等;

 4. 支持数据持久化。可以将内存中数据保存在磁盘中,重启时加载;

 5. 主从复制,哨兵,高可用;

可以用作分布式锁。可以作为消息中间件使用,支持发布订阅;



1.2 Redis支持的功能


 1. 缓存: 提升数据的访问性能

 2. 可用作低配版的消息中间件,支持发布订阅

 3. 可用做分布式锁

 4. 可以实现session共享



1.3 与memortCach对比






























对比内容

Redis


memoryCache
存储方式Redis 支持持久化Memcache不支持持久化,会把数据全部存在内存,很难解决缓存雪崩的问题
数据类型Redis 支持五种数据类型Memcache 对数据类型的支持简单,只支持简单的 key-value
底层模型Redis 直接自己构建了 VM 机制,因为一般的系统调用系统函数的话,会浪费一定的时间去移动和请求调用系统
Value大小Redis 可以达到 1GBMemcache 只有 1MB

2. Redis内存管理

                                  技术分享图片


2.1 redisObject

Redis对象的类型、内部编码、内存回收、共享对象等功能,都需要redisObject支持

这样设计的好处:可以针对不同场景,对5种常用的数据类型设置多种不同的数据结构实现,从而优化对象在不同场景下的使用效率;


推荐阅读
author-avatar
knight
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有