1. 认识NoSQL
非关系型数据库
- NoSQL是指一类非关系型数据库,它们采用的数据模型不同于传统的关系模型,它通常使用键值对、文档、图形等非传统的数据结构进行数据存储,不遵循预定义的模式和模型。NoSQL数据库通常分布式、高可扩展性,可以水平扩展以适应海量数据的存储和高并发访问,适用于处理半结构化或非结构化数据。
- NoSQL数据库的出现是为了解决关系型数据库的一些限制,如扩展性、数据模型等。关系型数据库主要基于ACID事务模型,一旦遇到超大规模的数据时,性能会大幅下降,并且,传统的关系数据库通常使用锁机制来避免多用户访问数据库时发生冲突,这样会影响数据库的并发性能。
- 与此相反,NoSQL数据库采用BASE(基本可用,柔性状态,最终一致性)理论,没有传统关系型数据库的复杂以及性能瓶颈。NoSQL数据库通常无需使用关系连接等复杂的操作,具备更好的可扩展性,能够优化写入性能,而且在可扩展性方面更具灵活性。
- 目前市面上的NoSQL数据库有很多,如键值存储(如Redis、DynamoDB)、文档型(如MongoDB)、列数据库(如HBase)和图数据库(如Neo4j),不同的数据库类型适用于不同的业务场景,需要根据实际需求选择适合自己的数据库。
2. Redis数据结构
基于内存的键值型NoSQL数据库
- 键值key-value型,value支持多种不同数据结构;
- 单线程,每个命令具备原子性;
- 低延迟,速度快,基于内存、IO多路复用;
- 支持数据持久化,定期加内存中的数据持久化存储到磁盘中;
- 支持主从集群、分片(数据拆分、多机器存储)集群;
其中key一般是String类型,不过value的类型有许多:
3. Redis通用命令
启动
cd /usr/local/bin
redis-server /etc/redis.conf
redis-cli
AUTH +redis密码
通用命令是部分数据类型,都可以使用的指令,常见指令:
- KEYS:查看符合模板的所有key,但是不建议在生存环境设备使用
使用Xshell软件进行redis命令行操作时,进行查询所有的key,需要先进一个db中,例如:
redis单线程,这种模糊查询速度很慢
- DEL:删除指定的key,需要删除多个可以指定多个key
- MSET:批量插入
- EXISTS:判断key值是否存在
之前key值name已经删除
- EXPIRE:给一个key设置有效期,有效期到期该key会被自动删除
- TTL:相应的查看该key还有多长时间被删除
解决内存潜在占满的问题
此时k3已经被删除,显示时间-2为删除,显示为-1位永久存在