Python操作Redis

一、更新pip镜像源,并安装redis模块

1、更新本地pip镜像源

在用户家目录下创建 .pip 目录,进入到 .pip 目录,创建 pip.conf 文件,文件内容如下

[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
[install]
trusted-host=mirrors.aliyun.com
timeout = 150

可以参考链接:https://blog.csdn.net/m0_37886429/article/details/82385768

2、pip安装redis模块

pip install redis
二、对redis各个数值类型操作

前提: 创建连接的句柄

from redis import StrictRedis
r=StrictRedis(host='127.0.0.1',port=6379,db=0,password='test123456')  #创建连接句柄,后期对redis操作都通过句柄


###针对库的操作
r.flushdb()      #清空单个数据库
r.keys()         #列出所有key
r.exists('test_redis') #检测这个key是否存在
r.dbsize()       #数据库中多少个条数
r.type(key)      #判断key的数据类型
dir(r)           #查看句柄所有的方法

1、字符串(string)

###shell命令行操作
常用命令语法:set key value |  get key  | delete key
> set test_redis "Hello Python"   #设置key和value
> get test_redis                  #获取key的value值
> delete test_redis               #删除key

###python客户端操作
常用命令语法:r.set(key,value) | r.get(key)  | r.delete(key)
r.set("test_redis","Hello Python")   #设置key和value
r.get("test_redis")                  #获取key的value值
r.delete("test_redis")               #删除key

2、列表(list)

###shell命令行操作
常用命令语法:lpush key value1|[value2]|..  |  rpush key value1|[value2]|..
            lrange key start stop | llen key | lpop key | rpop key
            delete key
> lpush test_redis2 python     #将一个或多个值插入到列表头部
> rpush test_redis2 mysql      #将一个或多个值插入到列表尾部
> lrange test_redis2 0 -1      #获取列表指定范围内的元素
> llen test_redis2             #获取列表中元素的总个数
> lpop test_redis2             #移除并获取列表的第一个元素
> rpop test_redis2             #移除并获取列表的最后一个元素
> delete test_redis2           #删除key

###python客户端操作
r.lpush("test_redis2","python")   #将一个或多个值插入到列表头部
r.rpush("test_redis2","mysql")    #将一个或多个值插入到列表尾部
r.lrange("test_redis2",0,-1)      #获取列表指定范围内的元素
r.llen("test_redis2")             #获取列表中元素的总个数
r.lpop("test_redis2")             #移除并获取列表的第一个元素
r.rpop("test_redis2")             #移除并获取列表的最后一个元素
r.delete("test_redis2")           #删除key

3、集合(set)

###shell命令行操作
常用命令语法:sadd key value1[value2...]  
            smembers key  | sinter key1[key2]
            spop key | delete key
> sadd test_redis3 python      #向集合添加一个或多个成员
> sadd test_redis3 mysql       #向集合添加一个或多个成员
> smembers test_redis3         #返回集合中的所有成员
> sinter test_redis3           #返回给定所有集合的交集
> spop test_redis3             #移除并返回集合中的一个随机元素


####python客户端操作
r.sadd("test_redis3","python")      #向集合添加一个或多个成员
r.sadd("test_redis3", "mysql")      #向集合添加一个或多个成员
r.smembers("test_redis3")           #返回集合中的所有成员
r.sinter("test_redis3")             #返回给定所有集合的交集
r.spop("test_redis3")               #移除并返回集合中的一个随机元素

4、有序集合(sorted set)

###shell命令行操作
常用命令语法:zadd key score value[score1 value1]  | zrange key start stop [withscores] 
> zadd test_redis4 1 python           #向有序集合添加一个或多个成员,或者更新已存在成员的分数
> zadd test_redis4 2 mysql            #向有序集合添加一个或多个成员,或者更新已存在成员的分数
> zrange test_redis4 0 -1             #通过索引区间返回有序集合指定区间内的成员
> zrange test_redis4 0 -1 withscores  #通过索引区间返回有序集合指定区间内的成员和成员对应的分数

###python客户端操作
语法:r.zadd(name=key,mapping={value:score})
r.zadd(name="test_redis4",mapping={"python":0})   #向有序集合添加一个或多个成员,或者更新已存在成员的分数
r.zadd(name="test_redis4",mapping={"mysql":1})    #向有序集合添加一个或多个成员,或者更新已存在成员的分数
r.zrange("test_redis4",0,-1,withscores=True)      #如果只是查看集合中的数据,withscores参数可以不用加,
                                                    withscores参数加上后返回数据格式:[(value,score),(value,score)...]

5、hash

###shell命令行操作
> hset key field value                       #将哈希表 key 中的字段 field 的值设为 value
> hmset key field1 value1 [field2 value2 ]   #同时将多个 field-value (域-值)对设置到哈希表 key 中

> hget key field             #获取存储在哈希表中指定字段的值
> hgetall key                #获取在哈希表中指定 key 的所有字段和值
> hmget key field1 [field2]  #获取所有给定字段的值
> hkeys key                  #获取所有哈希表中的字段
> hvals key                  #获取哈希表中所有值


###python客户端操作
r.hset(name=key,mapping={field:value})   #将哈希表 key 中的字段 field 的值设为 value
r.hgetall(key)                           #获取在哈希表中指定 key 的所有字段和值

三、REDIS PIPLINE 批量导入数据

1、文件内容

cat data.txt

wolys # wolysopen111 # wolys@21cn.com
coralshanshan # 601601601 # zss1984@126.com
pengfeihuchao # woaidami # 294522652@qq.com
simulategirl # @#$9608125 # simulateboy@163.com
daisypp # 12345678 # zhoushigang_123@163.com
sirenxing424 # tfiloveyou # sirenxing424@126.com
raininglxy # 1901061139 # lixinyu23@qq.com
leochenlei # leichenlei # chenlei1201@gmail.com
z370433835 # lkp145566 # 370433835@qq.com

2、python代码

#!/usr/bin/env python
#-*- coding:utf-8 -*-

import redis,re
pool = redis.ConnectionPool(host='127.0.0.1',port=6379,db=0,password='test123456')
r = redis.Redis(connection_pool=pool)    #创建连接池
pipe = r.pipeline()
p=re.compile(r'(.*)\s#\s(.*)\s#\s(.*)')
pipe = r.pipeline()
f = open("data.txt")
matchs=p.findall(f.read())

for user in matchs:
    key='users_%s' % (user[0].strip())
    pipe.hset(key,'pwd',user[1].strip()).hset(key,'email',user[2].strip())

pipe.execute()
f.close()

这里写图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值