特点及优点
与其他数据库对比
应用场景
redis版本
Redis附加功能
Ubuntu
Windows
配置文件所在路径
设置连接密码
允许远程连接
远程连接测试
Windows连接Ubuntu的Redis服务
五大数据类型及应用场景
通用命令:适用于所有数据类型
字符串类型(string)
特点
字符串常用命令
字符串常用命令
数值操作:字符串类型数字
键的命名规范
mset liu:email liuliu66@163.com
string命令汇总
string数据类型注意
示例
列表数据类型(List)
特点
列表常用命令
示例
模块(redis)
Ubuntu
Windows
使用流程
Python与redis交互注意
通用命令代码示例
python操作list
list案例: 一个进程负责生产url,一个进程负责消费url
进程1: 生产者
进程2: 消费者
使用进程模块来实现试试?
python操作string
位图操作bitmap:注:只能操作字符串
定义
强势点
设置某一位上的值(setbit)
示例
获取某一位上的值
GETBIT key offset
bitcount
统计键所对应的值中有多少个 1
应用场景案例
代码实现
Hash散列数据类型
定义
优点
缺点(不适合hash情况)
基本命令操作
Hash与python交互
Python代码hash散列
应用场景:微博好友关注
应用场景: redis+mysql+hash组合使用
原理
代码实现
mysql数据库中数据更新信息后同步到redis缓存
用户修改个人信息时,要将数据同步到redis缓存
集合数据类型(set)
特点
基本命令
案例: 新浪微博的共同关注
python操作set
python代码实现微博关注
有序集合sortedset:主要运用:排行榜
特点
示例
一个保存了水果价格的有序集合
一个保存了员工薪水的有序集合
一个保存了正在阅读某些技术书的人数
有序集合常用命令
python操作sorted set
有序集合的交集与并集
案例1:网易音乐排行榜
代码实现
案例2: 京东商品畅销榜
python代码实现
持久化定义
为什么需要持久化
数据持久化分类之 - RDB模式(默认开启)
默认模式
创建rdb文件的两种方式
**方式一:**服务器执行客户端发送的SAVE或者BGSAVE命令
**方式二:设置配置文件条件满足时自动保存(使用最多)**执行的是bgsave
数据持久化分类之 - AOF(AppendOnlyFile,默认未开启)
特点
RDB缺点
AOF持久化原理及优点
安全性问题考虑
策略 - 配置文件
AOF文件中是否会产生很多的冗余命令?
示例
AOF文件重写方法触发
RDB和AOF持久化对比
数据恢复(无需手动操作)
配置文件常用配置总结
Redis相关文件存放路径
定义
作用
原理
两种实现方式
方式一(Linux命令行实现1)
redis-server --slaveof
方式一(Redis命令行实现2)
示例
方式二(修改配置文件)
问题总结:master挂了怎么办?
示例
Redis之哨兵 - sentinel
示例
1、环境搭建
2、安装并搭建sentinel哨兵
sentinel.conf解释
生产环境中设置哨兵sentinel
高并发产生的问题?
怎么办?
原理
实现
博客项目解决高并发问题
1、在数据库中创建库 blog,指定字符编码utf8
2、同步数据库,并在user_profile中插入表记录
3、启动django项目,并找到django路由测试 test函数
4、在数据库表中创建测试字段score
3、在blog/views.py中补充 test函数,对数据库中score字段进行 +1 操作
4、启多个服务端,模拟30个并发请求
(1)多台服务器启动项目
(2)在tools中新建py文件 test_api.py,模拟30个并发请求
(3) python3 test_api.py
(4) 在数据库中查看 score 字段的值
解决方案:redis分布式锁
特点
事务命令
使用步骤
事务中命令错误处理
为什么redis不支持事务回滚
- 观点
python使用pipeline()与execute()批量进行批量操作
示例