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

你可能感兴趣的:(Redis简介和memcache区别)