你读的这篇博客是关于redis 的,想必你对它已经有所了解,我最近在读redis开发与运维这本书,我想吧这本书的一些内容与大家分享,一是希望大家能共同进步,再者就是希望能经常查阅,提醒自己。我会陆续把这本书的重要知识点呈现。
Redis 的特性:
-
速度快
- redis 所有的数据都是存放在内存中
- c语言实现,速度快
- 使用单线程架构,预防了多线程可能产生的竞争问题。
- redis源代码精打细磨
-
基于键值对的数据结构
- 几乎所有的编程语言都提供了类似字典的功能,例如Java里的map、 Python里的dict,类似于这种组织数据的方式叫作基于键值的方式,与很多键值对数据库不同的是, Redis中的值不仅可以是字符串,而且还可以是具体的数据结构,这样不仅能便于在许多应用场景的开发,同时也能够提高开发效率。
- 5种数据结构:字符串、哈希、列表、集合、有序集合,同时在字符串的基础之上演变出了位图(Bitmaps)和HyperLogLog两种神奇的“数据结构”,并且随着LB(Location Based Service,基于位置服务)的不断发展, Redis3.2版本中加入有关GEO(地理信息定位)的功能,
-
丰富的功能
- 除了5种数据结构, Redis还提供了许多额外的功能:
- 提供了键过期功能,可以用来实现缓存。
- 提供了发布订阅功能,可以用来实现消息系统。
- 支持Lua脚本功能,可以利用Lua创造出新的 Redis命令。
- 提供了简单的事务功能,能在一定程度上保证事务特性
- 提供了流水线( Pipeline)功能,这样客户端能将一批命令一次性传到 Redis,减少网络的开销
-
简单稳定
- 源码很少
- 单线程
-
客户端语言众多:
- java php c c++ Nodejs python 等
-
持久化
- 将数据放在内存中是不安全的, redis提供两种持久化方式 RDB ,AOF即可使用这两种方式将内存的数据保存到硬盘中,保证数据的可持久性。
-
主从复制
- redis提供了复制功能,实现多个相同数据的副本
-
高可用和分布式
- 3.0版本正式提供了分布式实现redis cluster , 它是redis真正的分布式实现,提供了高可用读写和容量扩展性
关于Redis的安装和版本不同在这里就过多讲,可以进行百度搜索