redis概念

NoSQL定义:

NoSQL是不同于传统的关系数据库的数据库管理系统的统称.其两者最重要的区别是NoSQL不使用SQL作为查询语言.NoSQL数据存储可以不需要固定的表格模式。NoSQL是基于键值对的,可以想象成表中的主键和值的对应关系.

redis定义:

Redis是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件.它支持多种类型的数据结构,如 字符串(strings)、散列(hashes)、 列表(lists)、 集合(sets)、 有序集合(sorted sets)等。

redis和memcache的区别:
  1. 内存管理机制

Memcached默认使用Slab Allocaor机制管理内存,其主要思想是按照预先规定的大小,将分配的内存分割成特定长度的块 以存储相应长度的key-value数据记录,以完全解决内存碎片问题.空闲列表进行判断存储状态,【类似于Java虚拟机对象的分配,空闲列表】

在这里插入图片描述

Redis使用现场申请内存的方式来存储数据,并且很少使用free-list等方式来优化内存分配,会在一定程度上存在内存碎片,【CPU内存是连续,类似于Java虚拟机对象的分配,直接内存分配 (指针碰撞)】

在这里插入图片描述

  1. 数据持久化方案

memcached不支持内存数据的持久化操作,所有的数据都以in-memory的形式存储.
redis支持持久化操作.redis提供了两种不同的持久化方法来讲数据存储到硬盘里面,第一种是rdb形式,一种是aof形式
- rdb:属于全量数据备份,备份的是数据
- aof:append only if,增量持久化备份,备份的是指令

  1. 缓存数据过期机制

Memcached在删除失效主键时也是采用的消极方法,即Memcached内部也不会监视主键是否失效,而是在通过Get访问主键时才会检查其是否已经失效.惰性删除:由用户触发,判断这个命令有没有过期,然后删除返给用户一个空值(这种删除方式容易引起内存泄露)
Redis定时、定期等多种缓存失效机制,减少内存泄漏

  1. 支持的数据类型

Memcached支持单一数据类型,[k,v]
redis支持五种数据类型

redis作为数据库的使用有什么优缺点
  • 优点:没有Scheme约束,数据结构的变更相对容易,一开始确定数据类型,抗压能力强,性能极高,10万/qps(每秒查询率)
  • 缺点:没有索引,没有外键,缺少int/data等基本数据类型,多条件查询需要通过集合内联和链接间实现,开发效率低,可维护性不佳
redis与mysql和memcache的区别

在这里插入图片描述

redis6.0
redis6.0
为什么使用多线程?
可以充分利用服务器 CPU 资源
多线程任务可以分摊 Redis 同步 IO 读写负荷

会不会引起多线程问题?
同时读或同时写,不会同时读写操作
IO 线程只负责读写 socket 解析命令,不负责命令处理
命令处理还是单线程的

查看更多文章移步

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

乐观的Terry

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值