python操作redis

  • 模块安装

       pip install redis

  • 使用流程
import redis
 
# 创建数据库连接对象

r = redis.Redis(host="127.0.0.1",port=6379,db=0,password="123456" )
  • 代码示例                
import redis


# 1 创建redis数据库连接对象

r = redis.Redis()

# 2 使用,很多命令的返回值是字节串,需要用字符串
#  表示时,调用decode方法.

# 3.1 通用命令...
print(r.keys("*"))
print(r.exists("name")) # 是否存在name这个键

#3.2字符串类型操作
r.set("name","xx",5)
print(r.get(“name))

r.mset({"a":100,"b":200,"c":300})
print(r.mget(["a","b","c"]))

#3.3列表类型操作
r.lpush("list",100,200,300)
print(r.lrange("list",0,-1))

Hash散列数据类型

  •  定义

1.由field和关联的value组成的键值对

2.field的value是字符串类型

3.一个hash中最多包含2^32-1个键值对

  •  优点

1.节约空间 特定条配下【1.字段小于512个,2.value不超过64字节】

2.按需获取字段的值

  • 缺点

1.使用过期键功能:键过期功能只能对键进行过期操作,不能对散列的字段进行过期操作

2.存储消耗大于字符串结构

  • python操作hash
# 1 更新一条数据的属性,没有则新建,hset(name, key, value) 
r.hset("user","uname","xx")

# 2 读取这条数据的指定属性,返回字符串类型,hget(name, key)
r.hget("user","uname")

# 3 批量更新数据属性,没有则新建,参数为字典,hmset(name, mapping)
r.hmset("user",{"password":"123","E-":"123@"})

# 4 批量读取数据(没有则新建)属性,hmget(name, keys)
r.hmget("user", "uname","age")

# 5 获取这条数据的所有属性和对应的值,返回字典类型,hgetall(name)
r.hgetall("user")

# 6 获取这条数据的所有属性名,返回列表类型,hkeys(name)
r.hkeys("user")

# 7 删除这条数据的指定属性,hdel(name, *keys)
r.hdel("user","E-","phone")
  • 应用场景
  1. 用户维度统计
       统计数包括:关注数、粉丝数、喜欢商品数、发帖数
       用户为key,不同维度为field,value为统计数
       比如关注了5人
         HSET user:10000 fans 5
         HINCRBY user:10000 fans 1

集合数据类型(set)

  • 特点

1、无序、去重
2、元素是字符串类型
3、最多包含2^32-1个元素

  • python操作set,sortedset
import redis

r = redis.Redis()

# 有序集合类型的操作
r.zadd('pyzk1', {'tedu': 100, 'tedu2': 200})
print(r.zrange('pyzk1', 0, -1, withscores=True))
r.zadd('pyzk2', {'tedu2': 200, 'tedu3': 200})
# 并集运算
r.zunionstore('pyzk3',['pyzk1','pyzk2'], aggregate='sum')
print(r.zrange('pyzk3', 0, -1, withscores=True))
# 并集运算(带权重)
r.zunionstore('pyzk4',{'pyzk1':0.8,'pyzk2':0.2},
              aggregate='sum')
print(r.zrange('pyzk4', 0, -1, withscores=True))

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值