文章目录
后端开发技能学习(九)redis学习(上篇)
基础知识
Redis是什么?
Redis是一种基于键值对(key-value)的NoSQL数据库,与很多键值对数据库不同的是,Redis中的值可以是由string(字符串)、hash(哈希)、list(列表)、set(集合)、zset(有序集合)、Bitmaps(位图)、HyperLogLog、GEO(地理信息定位)等多种数据结构和算法组成,因此Redis可以满足很多的应用场景,而且因为Redis会将所有数据都存放在内存中,所以它的读写性能非常惊人。不仅如此,Redis还可以将内存的数据利用快照和日志的形式保存到硬盘上,这样在发生类似断电或者机器故障的时候,内存中的数据不会“丢失”。除了上述功能以外,Redis还提供了键过期、发布订阅、事务、流水线、Lua脚本等附加功能。
Redis有哪些特性
1.速度快 Why?->(数据放在内存中、C语言实现、单线程架构、源代码高效)
2.基于键值对的数据结构服务器
3.丰富的功能 which?->(键过期、发布订阅、支持Lua脚本、事务功能、Pipeline功能)
4.简单稳定 Why?->(源码简洁、单线程模型、不依赖操作系统类库)
5.支持多种客户端语言 (java\php\python\c\c++\nodejs)
6.持久化 内存->磁盘 (RDB\AOF)
7.主从复制
8.高可用和分布式 (Redis Sentinel。Redis Cluster)
应用场景
1.缓存
2.排行榜系统
3.计数器应用
4.社交网络
5.消息队列系统
入门
基础命令
先来点基础命令
SELECT n # 选择字典(默认有16个字典) n代表字典序号默认字典为0号
KEYS * # 通过通配符来匹配并显示键值
TYPE key # 查看键值的数据类型
SET key value # 新建键对值
DEL key # 删除键对值
GET key # 获得值
EXISTS key # 判断键是否存在
数据类型
1.字符串类型
一个字符串类型键允许存储的数据的最大容量是512MB,字符串类型是其他4种数据类型的基础,其他数据类型和字符串类型的差别从某种角度来说只是组织字符串的形式不同。例如,列表类型是以列表的形式组织字符串,而集合类型是以集合的形式组织字符串。
SET num 1
GET num
通过上述命令可以建立并引用键对值,除此之外,还支持递增操作。
INCR num
这部分就不多说,边用边学效果最好。
附加功能
慢查询分析
慢查询:超过指定时间的语句查询称为“慢查询”
Redis也提供了慢查询日志帮助开发人员定位系统存在的慢操作。
所谓慢查询日志就是系统在命令执行前后计算每条命令的执行时间,当超过预设阀值,就将这条命令的相关信息(例如:发生时间,耗时,命令的详细信息)记录下来。
使用慢查询时,有两个参数需要明确:
- slowlog-log-slower-than 设置执行时间超过多少微秒时记录 默认为10000
- slowlog-max-len 设置慢查询记录列表的最大长度
修改参数
confi