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常用知识点JefferyLcmRedis NoSQL数据库(version 3.0)MicoCubeRedis之主从集群环境搭建编辑小猿redis韩绝交同为分布式缓存,为何 Redis 更胜一筹?Python编程社区
查看原文:Redis简介和memcache区别