分类:Redis
跳到导航
跳到搜索
Redis
实用资料
- 实用资料:1、Redis 官方文档☆2、Redis 命令参考★
关于
Remote Dictionary Server(Redis)是一个开源的由 Salvatore Sanfilippo 使用 ANSI C 语言编写的'''key-value'''数据存储服务器。其值(value)可以是 字符串(String), 哈希(Map), 列表(list), 集合(sets) 和 有序集合(sorted sets)等类型,所以它通常也被称为数据结构服务器。
Redis 本质上是一个 Key-Value 类型的内存数据库,很像 memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据 flush 到硬盘上进行保存。
redis 的特点:
- redis 足够简单和稳定
- 支持丰富的数据结构
- 内存存储读写性能优秀
- 提供持久化的支持
- 支持部分事务操作
优缺点
优点:
- 性能非常出色:纯内存操作,每秒可以处理超过 10万次读写操作,是已知性能最快的 Key-Value DB。
- 支持保存多种数据结构,此外【单个 value 的最大限制是 512 M】,不像 memcached 只能保存1MB的数据,因此Redis可以用来实现很多有用的功能。
- 比方说用他的 List 来做 FIFO 双向链表,实现一个轻量级的高性 能消息队列服务,用他的 Set 可以做高性能的 tag 系统等等。【???】
- 另外 Redis 也可以对存入的 Key-Value 设置 expire 时间,因此也可以被当作一个功能加强版的 memcached 来用。
缺点:
- 数据库容量受到物理内存的限制,不能用作海量数据的高性能读写,因此主要适合较小数据量的高性能操作和运算上。
关于 NoSQL
redis 属于NoSQL数据库,NoSQL 数据库叫非关系型数据库,(NoSQL = Not Only SQL),意即“不仅仅是SQL”。
按存储方式不同,数据库可以分为以下类型:
- key-value 存储:“Berkeley DB”、“MemcacheDB”、“Redis”;【Memcache不能持久化???】
- 文档存储:“MongoDB”、“CouchDB”;
- 列存储:“Hbase”、“Cassandra”;
与 memcache 的区别?
二者区别主要体现在以下方面:
- 数据类型:
- redis:数据类型丰富,支持 set liset 等类型;
- memcache:支持简单数据类型,需要客户端自己处理复杂对象;
- value大小:
- redis:单个 value 的最大限制是
1 GB;【key、string、以及集合链表哈希的单个元素,大小上限都是 512 M】 - memcache:是一个内存缓存,key 的长度小于 250 字符,单个 item 存储要小于 1M;
- redis:单个 value 的最大限制是
- 持久性:
- redis:支持数据落地持久化存储;
- memcache:不支持数据持久存储(重启后数据全部丢失);
- 分布式存储:
- redis:支持 master-slave 复制模式;
- memcache:可以使用一致性 hash 做分布式(无法进行数据同步);
- 事务:
- redis:支持事务操作;
- memcache:只保证简单操作的原子性,不支持事务;
- 数据一致性不同:
- redis:使用的是单线程模型,没有 CAS 支持,使用事务保证一串命令的原子性;
- memcache:提供了 CAS 保证多个并发访问操作同一份数据的一致性问题;
- I/O模型:
- redis:
单线程I/O复用单线程、I/O多路复用(并支持“通道技术”); - memcache:非阻塞I/O复用;【?】
- redis:
简单来说,虽然二者都是 key-value 的存储服务器,但 memcache 是一个纯粹的缓存(内存缓存),而 redis 更接近一个完备的数据库(内存数据库)。
目录
基础
- “Redis:下载安装”
- “Redis:常用命令”
- “Redis:数据类型”
- “Redis:HyperLogLog”
- “Redis:GEO(地理位置信息)”
- “Redis:Stream”
- “Redis:发布/订阅(pub/sub)”
- “Redis:事务(transaction)”
高级特性
- “Redis:持久化(persistence)”
- “Redis:复制(replication)”
- “Redis:哨兵(Sentinel)”
- “Redis:键空间通知(keyspace notification)”
- “Redis:通信协议(protocol)”
- “Redis:管道技术、分区”
- “Redis:性能测试”
集群
客户端与开发实践
- “Redis:客户端”
- “Jedis、Redisson与lettuce”
- “Jedis 的编程实践”
- “spring-data-redis 的使用实践”
- “Spring 的 Redis缓存注解”
- “Redis 应用示例”
分布式
相关知识
- “FAQ:Redis”
- “关于:Redis 到底是单线程还是多线程?”
- “关于:Redis 的内存回收策略、Key 失效机制”
- “关于:缓存穿透、缓存击穿、缓存雪崩、热点数据失效”
- “什么是布隆过滤器(BloomFilter)?”
- “逻辑日志与物理日志”
参考
- 菜鸟教程:Redis
- Redis命令参考
- 《Netty、_Redis、Zookeeper高并发实战》(尼恩 著)——机械工业出版社
分类“Redis”中的页面
以下29个页面属于本分类,共29个页面。
R
- Redis 应用示例
- Redis:GEO(地理位置信息)
- Redis:HyperLogLog
- Redis:Stream
- Redis:下载安装
- Redis:事务(transaction)
- Redis:发布/订阅(pub/sub)
- Redis:哨兵(Sentinel)
- Redis:复制(replication)
- Redis:客户端
- Redis:常用命令
- Redis:性能测试
- Redis:持久化(persistence)
- Redis:数据类型
- Redis:管道技术、分区
- Redis:通信协议(protocol)
- Redis:键空间通知(keyspace notification)
- Redis:集群教程