文章目录
一、NoSQL数据库的简介
技术的分类:
1,NoSQL数据库概述
NoSQL(Not Only SQL)泛指非关系型数据库;不依赖于业务逻辑方式存储,而以简单的key-value模式存储,因此大大增加了数据库的扩展能力
- 不遵循SQL标准
- 不支持ACID(原子性,一致性,隔离性,持久性)
- 远超于SQL的性能
NoSQL的一些说明
- 减少cpu和IO的压力,直接通过内存读取
- 可以作为缓存使用,减少IO的读操作,提高访问速度
- 打破了传统关系型数据库以业务逻辑为依据的存储模式,而针对不同数据结构类型改为以性能为最优先存储方式
2,NoSQL适用场景和不适用场景
1.2.1 适用场景
- 对数据高并发的读写(电商秒杀)
- 海量数据的读写
- 对数据高可扩展性
1.2.2 不适用场景
- 需要事务支持
- 基于sql的结构化查询存储,处理复杂的关系
用不着sql的和用了sql也不行的情况,请考虑用NoSQL
二、Redis的概述和安装
1.Redis的概述
- Redis是一个开源的key-value存储系统
- 性能极高 – Redis 能读的速度是 110000 次 /s, 写的速度是 81000 次 /s
- 它支持的存储的value类型相对多,包括string(字符串),list(链表),set(集合),zset(sorted set–有序集合)和hash(哈希类型)
- 这些数据类型都支持 push/pop,add/remove 及取交集并集和差集等丰富的操作,且这些操作都是原子性的
- Redis支持各种不同方式的排序
- 为了保证效率,数据都是缓存在内存中
- Redis会周期性的把更新的数据写入磁盘(持久化操作)或者把修改操作写入追加到记录文件
- 实现了主从同步
2.Redis的下载与安装
Redis的github下载(for Windows)
一款免费的Redis可视化工具
Redis的安装教程
三,Redis关于key的基本操作和数据类型
1,关于key的基本操作
1.1 相关知识
Redis默认16个数据库,类似数组下标从0开始,初始默认使用0号库
使用命令 select dbid 来切换数据库
所有库有着相同的密码
dbsize 查看当前数据库的key的数量
flushdb 清空当前库
flushall 通杀全部库
1.2 key的操作
keys * 查看当前库的所有key
exists key 判断某个key是否存在
type key 查看你的key是什么类型
del key 删除指定key
unlink key 根据value选择非阻塞删除,仅将key从元数据删除,真正的删除会在后续异步操作
expire key 10 为给定的key设置过期时间
ttl key 查看还有多少秒过期,-1 表示永不过期,-2 表示已过期
2,常用数据类型
2.1 String
- String是Redis最基本的类型,一个key对应一个value
- String类型是二进制安全的,意味着Redis的string可以包含任何数据。比如jpg图片或者序列化对象
- 一个Redis中的字符串value最多可以是512M
原子性:
INCR key
对存储在指定key的数值执行原子+1的操作
–>所谓原子操作是指不会被线程调度机制打断的操作,这种操作一旦开始,就一直运行到结束,中间不会切换到另一个线程
2.2 List
Redis列表是简单的字符串列表,按照插入顺序排序,可以添加一个元素到列表的头部或者尾部
它的底层其实是一个双向链表,对两端的操作性能很好,通过索引下标的操作中间的节点性能会较差
List的数据结构为快速链表(quickList),列表元素较少时会使用一块连续的内存存储,这个结构是ziplist
2.3 Set
Redis的set是st