
- 上文中介绍了
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、设置 |