Redis简介和memcache区别

redis简介

redis(REmote DIctionary Server)是一个由Salvatore Sanfilippo写key-value存储系统,它由C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value类型的数据库,并提供多种语言的API。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步,redis在3.0版本推出集群模式。

特点、优势

k、v键值存储以及数据结构存储(如列表、字典)

所有数据(包括数据的存储)操作均在内存中完成

单线程服务(这意味着会有较多的阻塞情况),采用epoll模型进行请求响应,对比nginx

支持主从复制模式,更提供高可用主从复制模式(哨兵)

去中心化分布式集群

丰富的编程接口支持,如Python、Golang、Java、php、Ruby、Lua、Node.js 

功能丰富,除了支持多种数据结构之外,还支持事务、发布/订阅、消息队列等功能

支持数据持久化(AOF、RDB)

和MEMCACHE 区别

memcache是一个分布式的内存对象缓存系统,并不提供持久存储功能,而redis拥有持久化功能

memcache数据存储基于LRU(简单说:最近、最少使用key会被剔除),而redis则可以永久保存(服务一直运行情况下)

memcache是多线程的(这是memcache优势之一),也就意味着阻塞情况少,而redis是单线程的,阻塞情况相对较多

两者性能上相差不大

memcache只支持简单的k、v数据存储,而redis支持多种数据格式存储。

memcache是多线程、非阻塞IO复用网络模型,而redis是单线程IO复用模型

redis安装后可执行文件的作用

redis-server#Redis服务器和Sentinel服务器,启动时候可使用--sentinel指定为哨兵

redis-cli#Redis命令行客户端 

redis-benchmark#Redis性能测试工具 

redis-check-aof#AOF文件修复工具 

redis-check-dump#RDB文件检测工具 

redis-sentinel#Sentinel服务器,4.0版本已经做了软链接到redis-server

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.1 资料 ,最好的入门小册子,可以先于一切文档之前看,免费。 作者Antirez的博客,Antirez维护的R...
    JefferyLcm阅读 17,175评论 1 51
  • NOSQL类型简介键值对:会使用到一个哈希表,表中有一个特定的键和一个指针指向特定的数据,如redis,volde...
    MicoCube阅读 4,102评论 2 27
  • Redis是单进程单线程的,Redis利用队列技术将并发访问变为串行访问,消除了传统数据库串行控制的开销。 Red...
    编辑小猿阅读 325评论 0 0
  • 基于内存的NoSQL数据库。提供五种数据结构的存储。字符串、列表、集合、有序集合、散列表。Redis 支持很多特性...
    韩绝交阅读 755评论 0 1
  • 如今,市面上的缓存解决方案已经逐步成熟了,今天我将选取其中一些代表性的方案包括Redis、Memcached和Ta...
    Python编程社区阅读 120评论 0 0