一、更新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()