python与Redis数据库进行交互(增删改查)

1、安装包

安装Redis的有3种方式GitHub - redis/redis-py: Redis Python Client

  • 第一种:进⼊虚拟环境,联⽹安装包redis

    pip install redis

  • 第二种:进⼊虚拟环境,联⽹安装包redis

    easy_install redis

  • 第三种:到中⽂官⽹-客户端下载redis包的源码,使⽤源码安装

    一步步执行 wget https://github.com/andymccurdy/redis-py/archive/master.zip
    unzip master.zip
    cd redis-py-master
    sudo python setup.py install

2、python调⽤模块

引⼊模块

from redis import StrictRedis

        这个模块中提供了StrictRedis对象,⽤于连接redis服务器,并按照不同类型提供 了不同⽅法,进⾏交互操作

3、StrictRedis对象⽅法

        通过init创建对象,指定参数host、port与指定的服务器和端⼝连接,host默认为localhost,port默认为6379,db默认为0

sr = StrictRedis(host='localhost', port=6379, db=0)

简写
sr=StrictRedis()

        根据不同的类型,拥有不同的实例⽅法可以调⽤,与前⾯redis命令对应,⽅法需要的参数与命令的参数⼀致。

4、String类型增删改查 

  • 在桌面上创建redis目录
  • 使用pycharm打开 redis目录
  • 创建redis_string.py文件
from redis import *
if __name__=="__main__":
   #  我们在连接/获取外界资源的时候一定要注意使用try 
   try:
        #创建StrictRedis对象,与redis服务器建⽴连接
        sr=StrictRedis()  #  sr = StrictRedis(host='192.168.1.XX', port=6379, db=0)   #  sr = redis.Redis()  继承关系

    except Exception as e:
        print(e)

4.1 string-增加

  • ⽅法set,添加键、值,如果添加成功则返回True,如果添加失败则返回False

编写代码如下

from redis import *
if __name__=="__main__":
    try:
        #创建StrictRedis对象,与redis服务器建⽴连接
        sr=StrictRedis()
        #添加键name,值为dgw
        result=sr.set('name','dgw')
        #输出响应结果,如果添加成功则返回True,否则返回False
        print(result)
    except Exception as e:
        print(e)

运行结果:

4.2 string-获取

  • ⽅法get,添加键对应的值,如果键存在则返回对应的值,如果键不存在则返回None

编写代码如下

from redis import *
if __name__=="__main__":
    try:
        #创建StrictRedis对象,与redis服务器建⽴连接
        sr=StrictRedis()
        #获取键name的值
        result = sr.get('name')
        #输出键的值,如果键不存在则返回None
        print(result)
    except Exception as e:
        print(e)

运行效果:

4.3 string-修改

  • ⽅法set,如果键已经存在则进⾏修改,如果键不存在则进⾏添加

编写代码如下

from redis import *
if __name__=="__main__":
    try:
        #创建StrictRedis对象,与redis服务器建⽴连接
        sr=StrictRedis()
        #设置键name的值,如果键已经存在则进⾏修改,如果键不存在则进⾏添加
        result = sr.set('name','dgw11')
        #输出响应结果,如果操作成功则返回True,否则返回False
        print(result)
    except Exception as e:
        print(e)

运行效果:

4.4 string-删除

  • ⽅法delete,删除键及对应的值,如果删除成功则返回受影响的键数,否则则返 回0
  • 编写代码如下
from redis import *
if __name__=="__main__":
    try:
        #创建StrictRedis对象,与redis服务器建⽴连接
        sr=StrictRedis()
        #设置键name的值,如果键已经存在则进⾏修改,如果键不存在则进⾏添加
        result = sr.delete('name')
        #输出响应结果,如果删除成功则返回受影响的键数,否则则返回0
        print(result)
    except Exception as e:
        print(e)

运行效果:

4.5 获取键

  • ⽅法keys,根据正则表达式获取键
  • 编写代码如下
from redis import *
if __name__=="__main__":
    try:
        #创建StrictRedis对象,与redis服务器建⽴连接
        sr=StrictRedis()
        #获取所有的键
        result=sr.keys()
        #输出响应结果,所有的键构成⼀个列表,如果没有键则返回空列表
        print(result)
    except Exception as e:
        print(e)

运行效果:

5、hash类型增删改查 

5.1 hmset

示例代码:

from redis import StrictRedis

dic = {
    "name": "dgw",
    "age": 26,
    "date": "2023-06-23"
}
s = StrictRedis.from_url("redis://default:xxx@39.xx.xx.xx:6379/1")

# hmset 设置多个值
s.hmset(name=f"{dic.get('date')}", mapping=dic)

# hmget 查询单个值
ret = s.hmget(name=f"{dic.get('date')}", keys="name")
print(ret)

# hmget 查询多个值
ret = s.hmget(name=f"{dic.get('date')}", keys=["name", "age", "date"])
print(ret)

运行结果:

5.2 hmget

示例代码:

from redis import StrictRedis

dic = {
    "name": "dgw",
    "age": 26,
    "date": "2023-06-23"
}
s = StrictRedis.from_url("redis://default:xxx@39.xx.xx.xx:6379/1")

# hmset 设置多个值
s.hmset(name=f"{dic.get('date')}", mapping=dic)

# hmget 查询单个值
ret = s.hmget(name=f"{dic.get('date')}", keys="name")
print(ret)

# hmget 查询多个值
ret = s.hmget(name=f"{dic.get('date')}", keys=["name", "age", "date"])
print(ret)

运行结果:

5.3 expire

示例代码:

from redis import StrictRedis

dic = {
    "name": "dgw",
    "age": 26,
    "date": "2023-06-23"
}
s = StrictRedis.from_url("redis://default:dgw_xxxx2@39.xxx.58.xx:6379/1")

# hmset 设置多个值
s.hmset(name=f"{dic.get('date')}", mapping=dic)

# 设置ttl
s.expire(name=f"{dic.get('date')}", time=7200)

# hmget 查询单个值
ret = s.hmget(name=f"{dic.get('date')}", keys="name")
print(ret)

# hmget 查询多个值
ret = s.hmget(name=f"{dic.get('date')}", keys=["name", "age", "date"])
print(ret)

运行结果:

6、亲测

示例代码:

from redis import Redis, StrictRedis
# conn = StrictRedis()  # 该方法同Redis()
conn = Redis(host='127.0.0.1', port=6379, db=3)
# print(conn)

try:
    aa = conn.set('hello', 'world')
    print(aa)

    bb = conn.get('hello')
    print(bb)
except Exception as e:
    print(e)

运行结果:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值