django

Django-33 Redis2

2021-12-18  本文已影响0人  JuliusL

安装

pip3 freeze|grep -i redis
pip3 install redis

操作流程

1,建立连接对象

import redis
r = redis.Redis(host='127.0.0.1',port=6379,db=0,password='123456')

2,连接对象.redis命令即可
例如:r.set(key,value)
说明:大部分命令跟redis终端中使用雷同

位图

常用命令

  1. key 不存在时,初始化最小字节数的bit位,默认补0
  2. key存在时:满足长度要求,直接修改当前bit位,不满足的话在原有value上初始化最小字节数的bit位。

应用场景

哈希

定义

  1. 由field和关联的value组成的键值对
  2. field和value必须是字符串类型
  3. 一个hash中最多包含2^32-1个键值对

优缺点

优点:

常用命令

应用场景

1、用户维度数据统计
原理:基于hash压缩特点,和字段可计数
用户维度统计
统计包括:关注数、粉丝数、喜欢商品数、发帖数
用户key,不同维度为field,value为统计数
比如关注了5人

hset user:10000 fans 5
hincrby user:10000 fans 1
hincrby user:10000 fans -1

2、缓存
redis+mysql+hash组合使用
原理:可以按需求取出字段数据,也比较适合做缓存
示例:
用户想要查询个人信息
1、到redsi中查询个人信息
2、redis中查不到,到mysql查询,并缓存到redis
3、再次查询个人信息

集合

基础概念

1、无序、去重
2、元素是字符串类型
3、最多包含2^32-1个元素
类似于Python中所学集合

常用命令

应用场景

社交类平台,共同好友-交集
纯随机类抽奖
防止元素重复
黑/白名单

集合如果元素全是整型并且元素个数512个以内,用的是数组实现,否则用的是哈希

有序集合

基础概念
1、有序,去重
2、元素是字符串类型
3、每个元素都关联着一个浮点数分值(score),并按照分值从小到大的顺序排列集合中的元素(分值可以相同)
4、最多包含2^32-1个元素

常用命令

zunionstore salary3 2 salary salary2 weight 1 0.5 aggregate max

2代表集合数量,weights之后,权重1给salary,权重0.5给salary2集合,算完权重之后执行聚合aggregate

应用场景

各种排行榜

上一篇下一篇

猜你喜欢

热点阅读