Redis学习
Redis
#
Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。
特点
- Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用。
- Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
- Redis支持数据的备份,即master-slave模式的数据备份。
关系和非关系型数据库
关系型数据库
采用关系模型(二维表格模型)来组织数据的数据库。
一张二维表的表名就是关系,二维表中的一行就是一条记录,一列就是一个字段
优点:
- 容易理解,使用方便,通用的sql语言
- 易于维护,丰富的完整形(实体完整性、参照完整性、用户定义的完整性)大大降低了数据冗余和数据不一致的概率
缺点:
- 磁盘I/O是并发的瓶颈
- 海量数据查询效率低
- 横向扩展困难,无法简单的通过添加硬件和服务节点来扩展性能和负载能力,当需要对数据库进行升级和扩展时,需要停机维护和数据迁移
- 多表的关联查询以及复杂的数据分析类型的复杂sql查询,性能欠佳,因为要保证ACID原则,必须按照三范式设计
非关系型数据库
非关系性,分布式,键值对存储,结构不固定,一般不保证遵循ACID原则的数据存储系统
优点:
- 根据需要添加字段,不需要多表查询,仅需id取出对应的value
- 适用于SNS(社会化网络服务软件)
- 严格上讲不是一种数据库,而是一种数据结构化存储方法的集合
缺点:
- 只适合存储一些简单的数据
- 不适合复杂查询的数据
- 不适合持久存储海量数据
比较
内容 | 关系型数据库 | 非关系型数据库 |
---|---|---|
查询数据 | 存储于硬盘中,数据慢 | 存于缓存中,数据块 |
存储格式 | 只支持基础类型 | K-V、文档、图片等 |
扩展性 | 有多表查询机制,扩展困难 | 数据之间没有耦合,容易扩展 |
持久型 | 适用持久存储,海量存储 | 不适用持久存储,海量存储 |
数据一致性 | 事务能力强,强调数据的强一致性 | 事务能力弱,强调数据的最终一致 |
五种基本数据类型
String
Hash
List
有序可重复
Set
无序不可重复
Sorted set
有序不重复
Redis-cli通用命令
命令
根据层级关系目录形式存储数据
置key的失效时间
Redis 有四个不同的命令可以用于设置键的生存时间(键可以存在多久)或过期时间(键什么时候会被删除) :
- EXPlRE
命令用于将键key 的生存时间设置为ttl 秒。 - PEXPIRE
命令用于将键key 的生存时间设置为ttl 毫秒。 - EXPIREAT
< timestamp> 命令用于将键key 的过期时间设置为timestamp所指定的秒数时间戳。 - PEXPIREAT
< timestamp > 命令用于将键key 的过期时间设置为timestamp所指定的毫秒数时间戳
ttl:获取值为-1 说明此key没有设置有效期,当值为-2 说明已过期
第一种:在设值的时候指定失效时间
第二种:对一个已经存在的值设置失效时间
两个参数:
- NX:设置的时候key不存在,才能设置成功
- XX:一定要存在的时候才能设置成功
通用删除命令
还没有评论,来说两句吧...