- 上文中介绍了
NoSQL
和MongoDB
的相关知识: MongoDB的安装及基本命令和pymongo的使用 - 这里主要介绍
key-value
存储星数据库–Redis
Redis
简介
Redis
是完全开源免费的,遵守BSD
协议,是一个高性能的key-value
数据库Redis
与其他key - value
缓存产品有以下三个特点:Redis
支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用Redis
不仅仅支持简单的key-value
类型的数据,同时还提供list
,set
,zset
,hash
等数据结构的存储。Redis
支持数据的备份,即master-slave
模式的数据备份
Redis
的优势
- 性能极高 –
Redis
能读的速度是110000次/s,写的速度是81000次/s 。 - 丰富的数据类型 –
Redis
支持二进制案例的Strings
,Lists
,Hashes
,Sets
及Ordered Sets
数据类型操作。 - 原子 –
Redis
的所有操作都是原子性的,意思就是要么成功执行要么失败完全不执行。单个操作是原子性的。多个操作也支持事务,即原子性,通过MULTI和EXEC指令包起来 - 丰富的特性 –
Redis
还支持publish/subscribe
, 通知,key
过期等等特性
Redis
与其他key-value
存储有什么不同?
Redis
有着更为复杂的数据结构并且提供对他们的原子性操作,这是一个不同于其他数据库的进化路径Redis
的数据类型都是基于基本数据结构的同时对程序员透明,无需进行额外的抽象Redis
运行在内存中但是可以持久化到磁盘,所以在对不同数据集进行高速读写时需要权衡内存,因为数据量不能大于硬件内存- 在内存数据库方面的另一个优点是,相比在磁盘上相同的复杂的数据结构,在内存中操作起来非常简单,这样
Redis
可以做很多内部复杂性很强的事情。同时,在磁盘格式方面他们是紧凑的以追加的方式产生的,因为他们并不需要进行随机访问
Redis
的安装
- 至于安装, 我这里就不在班门弄斧了, 这里给大家推荐一篇博客: mac系统安装redis
- 文章写得非常详细, 建议参考安装
Redis
命令操作
Redis
命令十分丰富,包括的命令组有Cluster
、Connection
、Geo
、Hashes
、HyperLogLog
、Keys
、Lists
、Pub/Sub
、Scripting
、Server
、Sets
、Sorted Sets
、Strings
、Transactions
一共14个redis
命令组两百多个redis
命令- Redis中文命令大全, 可以通过检索功能快速查找命令
- 查看网站结构图,它以节点图的形式展示了所有redis命令
String
String
是redis
最基本的类型,最大能存储512MB的数据String
类型是二进制安全的,即可以存储任何数据、比如数字、图片、序列化对象等
设置值
1 | # a、设置键值 |
获取值
1 | # a、根据键获取值,如果键不存在则返回None(null 0 nil) |
运算命令
前提条件是:值是字符串类型的数字
1 | # a、将key对应的值加1 |
其他常用命令
1 | # a、追加值 |
Keys
1 | # 1、查找键,参数支持正则 |
Hashes
hash
是一个string
类型的field
和value
的映射表,hash
特别适合用于存储对象Redis
中每个hash
可以存储 232 - 1 键值对(40多亿)
1 | # 1、设置 |
列表(List)
Redis
列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)- 一个列表最多可以包含 232 - 1 个元素 (4294967295, 每个列表超过40亿个元素)。
1 | # 1、设置 |
集合(Set)
Redis
的Set
是String
类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。- `Redis中集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。
- 集合中最大的成员数为 232 - 1 (4294967295, 每个集合可存储40多亿个成员)。
1 | # 1、设置 |
有序集合(sorted set)
- 有序集合,元素类型为
Sting
,元素具有唯一性,不能重复 - 每个元素都会关联一个
double
类型的score
(表示权重),通过权重的大小排序,元素的score
可以相同 - 集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)
- 集合中最大的成员数为 232 - 1 (4294967295, 每个集合可存储40多亿个成员)
1 | # 1、设置 |