Redis基于内存非关系型数据库

   日期:2024-12-27     作者:o1454       评论:0    移动:http://3jjewl.riyuangf.com/mobile/news/7860.html
核心提示:特点及优点与其他数据库对比应用场景redis版本Redis附加功能 UbuntuWindows 配置文件所在路径设置连接密码允许远程连接远程连接

特点及优点

 

与其他数据库对比

 

应用场景

  1.  

redis版本

 

Redis附加功能

 
 

Ubuntu

 

Windows

 
 

配置文件所在路径

 

设置连接密码

 

允许远程连接

 

远程连接测试

Windows连接Ubuntu的Redis服务

Redis基于内存非关系型数据库

 
 
 

五大数据类型及应用场景

类型特点使用场景string简单key-value类型,value可为字符串和数字常规计数(微博数, 粉丝数等功能)hash是一个string类型的field和value的映射表,hash特别适合用于存储对象存储部分可能需要变更的数据(比如用户信息)list有序可重复列表关注列表,粉丝列表,消息队列等set无序不可重复列表存储并计算关系(如微博,关注人或粉丝存放在集合,可通过交集、并集、差集等操作实现如共同关注、共同喜好等功能)sorted set每个元素带有分值的集合各种排行榜

通用命令:适用于所有数据类型

 

字符串类型(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:主要运用:排行榜

特点
 
示例

一个保存了水果价格的有序集合

分值2.04.06.08.010.0元素西瓜葡萄芒果香蕉苹果

一个保存了员工薪水的有序集合

分值600080001000012000元素lucytomjimjack

一个保存了正在阅读某些技术书的人数

分值300400555666777元素核心编程阿凡提本拉登阿姆斯特朗比尔盖茨
有序集合常用命令
 

python操作sorted set

 
有序集合的交集与并集
 
案例1:网易音乐排行榜
 
代码实现
 
案例2: 京东商品畅销榜
 
python代码实现
 
 

持久化定义

 

为什么需要持久化

 

数据持久化分类之 - RDB模式(默认开启

默认模式
 
创建rdb文件的两种方式

**方式一:**服务器执行客户端发送的SAVE或者BGSAVE命令

 

**方式二设置配置文件条件满足时自动保存(使用最多)**执行的是bgsave

 

数据持久化分类之 - AOF(AppendOnlyFile,默认未开启

特点
 
RDB缺点
 
AOF持久化原理及优点
 
安全性问题考虑
 
策略 - 配置文件
 
AOF文件中是否会产生很多的冗余命令
 
示例
原有AOF文件重写后的AOF文件select 0SELECT 0sadd myset peiqiSADD myset peiqi qiaozhi danni lingyangsadd myset qiaozhiSET msg ‘hello tarena’sadd myset danniRPUSH mylist 2 3 5sadd myset lingyangINCR numberINCR numberDEL numberSET message ‘hello world’SET message ‘hello tarena’RPUSH mylist 1 2 3RPUSH mylist 5LPOP mylist
AOF文件重写方法触发
 
RDB和AOF持久化对比
RDB持久化AOF持久化全量备份,一次保存整个数据库增量备份,一次保存一个修改数据库的命令保存的间隔较长保存的间隔默认为一秒钟数据还原速度快数据还原速度一般,冗余命令多,还原速度慢执行SAVE命令时会阻塞服务器,但手动或者自动触发的BGSAVE不会阻塞服务器无论是平时还是进行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()批量进行批量操作

示例

 
 

Redis优点

 

来介绍一下redis中的数据类型

类型特点使用场景string简单key-value类型,value可为字符串和数字常规计数(微博数, 粉丝数等功能)hash是一个string类型的field和value的映射表,hash特别适合用于存储对象存储部分可能需要变更的数据(比如用户信息)list有序可重复列表关注列表,粉丝列表,消息队列等set无序不可重复列表存储并计算关系(如微博,关注人或粉丝存放在集合,可通过交集、并集、差集等操作实现如共同关注、共同喜好等功能)sorted set每个元素带有分值的集合各种排行榜

redis中的持久化方案

 

使用过Redis分布式锁么,它是什么回事

 
缓存穿透
 
缓存击穿
 
缓存雪崩
 
 

Redis优点

 

来介绍一下redis中的数据类型

类型特点使用场景string简单key-value类型,value可为字符串和数字常规计数(微博数, 粉丝数等功能)hash是一个string类型的field和value的映射表,hash特别适合用于存储对象存储部分可能需要变更的数据(比如用户信息)list有序可重复列表关注列表,粉丝列表,消息队列等set无序不可重复列表存储并计算关系(如微博,关注人或粉丝存放在集合,可通过交集、并集、差集等操作实现如共同关注、共同喜好等功能)sorted set每个元素带有分值的集合各种排行榜

redis中的持久化方案

 

使用过Redis分布式锁么,它是什么回事

 
缓存穿透
 
缓存击穿
 
缓存雪崩
 
特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。

举报收藏 0打赏 0评论 0
 
更多>同类最新资讯
0相关评论

相关文章
最新文章
推荐文章
推荐图文
最新资讯
点击排行
{
网站首页  |  关于我们  |  联系方式  |  使用协议  |  隐私政策  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号