操作redis

import redis
r = redis.Redis(host='118.24.1.40',
                password='HK13ewc&*',
                port='639',
                db=4,
                decode_responses=True#默认redis返回的结果是字符串
)
#string类型操作
# set方法
r.set('geng','set方法')#value必须为字符串
r.set('方便面','{"price":2.5,"count":100}')

#bytes类型  一般图片都是bytes类型
#从redis中取值;
data = r.get('geng')# redis默认返回的数据类型是字节类型bytes
# print(data.decode())#把字节类型转换为字符串

#删除redis中的key#删除redis中的key
r.delete('geng')

#更改redis中某个key的value
r.set('方便面','xxx')

#设置过期时间,单位是秒
expire_time = 60*2 #60秒*2 = 2分钟
r.set('geng2','123456',expire_time)

s = '加油呀'
print(s.encode())#字符串转换为字节

#hash
#存值,hset方法
r.hset('students','geng','{"class":tmz}')
r.hset('students','long','{"class":自学成才}')
r.hset('students','yi','{"class":baby}')

#获取值hget
print(r.hget('students','geng'))#获取某个key值
print(r.hgetall('students'))#获取所有key值,获取到的是个字典

#删除某个key值
r.hdel('students','geng')

#修改
# r.hset()
#设置过期时间,hash类型只能对外面的大key设置过期时间
h_expire_time = 60*2
r.expire('students',h_expire_time)

#获取当前数据库所有的key,返回结果是list
print(r.keys())
#获取当前数据库以g开头的key,返回结果是list
print(r.keys('g*'))
#获取当前数据库的类型,string还是hash类型
print(r.type('geng'))
print(r.type('students'))
#清空当前数据库所有的key
r.flushdb()
#清空所有数据库的key
r.flushall()

#管道(批量操作)

#管道(批量操作)
p = r.pipeline()#建立管道
# p.hset('students','geng','{"class":tmz}')
# p.hset('students','long','{"class":自学成才}')
# p.hset('students','yi','{"class":baby}')
p.exists('students123')#判断students数据库是否存在
p.hgetall('students')#获取students库里所有的值
s = p.execute()#执行管道,返回一个list,这个list里是每个pip命令的执行结果
print(s)
print(r.exists('students123'))#判断students数据库是否存在

输出结果:
在这里插入图片描述
迁移redis

#迁移redis

r = redis.Redis(host='ip',
                password='密码',
                port=端口号,
                db=第几个数据库,#如:db=4
                decode_responses=True#默认redis返回的结果是字符串
                )
r2 = redis.Redis(host='ip',
                password='密码',
                port=端口号,
                db=第几个数据库,#如:db=4
                decode_responses=True#默认redis返回的结果是字符串
                )

p = r2.pipeline()#r2使用管道存数据

for k in r.keys():#r.keys(),获取r 数据库中所有的key
    key_type = r.type(k)#获取r数据库中某个key的类型
    if key_type == 'string':
        value = r.get(k)#获取r数据库key表的value
        p.set(k,value)#把从r库获取到的key和value放到r2中
    elif key_type=='hash':
        hash_data = r.hgetall(k) #{'xx':xxx},获取到的结果是字典类型
        print('hash_data结果:',hash_data)
        for filed,data in hash_data.items():
            p.hset(k,filed,data)

p.execute()

备注:r.hgetall(库名)方法在这里插入图片描述
k表示的是某个数据库名,也就是students
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值