欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Redis之与python交互

程序员文章站 2023-11-15 18:37:16
Redis之与python交互,内容包括 Python操作redis方法,python操作String,redis存储session信息。其中,Python操作redis方法 包括 StrictRedis对象⽅法;python操作String 内容包括 string-增加,string-获取,str... ......

安装redis

pip install redis

调⽤模块
引⼊模块

from redis import *

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

 

方法

strictredis对象⽅法

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

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

简写
sr=strictredis()

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


string

  • set
  • setex
  • mset
  • append
  • get
  • mget
  • key

keys

  • exists
  • type
  • delete
  • expire
  • getrange
  • ttl


hash

  • hset
  • hmset
  • hkeys
  • hget
  • hmget
  • hvals
  • hdel


list

  • lpush
  • rpush
  • linsert
  • lrange
  • lset
  • lrem


set

  • sadd
  • smembers
  • srem


zset

  • zadd
  • zrange
  • zrangebyscore
  • zscore
  • zrem
  • zremrangebyscore

 

python操作string

准备

  • 在桌面上创建redis目录
  • 使用pycharm打开 redis目录
  • 创建redis_string.py文件
from redis import *
if __name__=="__main__":
    try:
        #创建strictredis对象,与redis服务器建⽴连接
        sr=strictredis()

    except exception as e:
        print(e)

 

string-增加

⽅法set,添加键、值,如果添加成功则返回true,如果添加失败则返回false
编写代码如下

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

 

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)

 

string-修改

⽅法set,如果键已经存在则进⾏修改,如果键不存在则进⾏添加
编写代码如下

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

 

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)

 

获取键

⽅法keys,根据正则表达式获取键
编写代码如下

from redis import *
if __name__=="__main__":
    try:
        #创建strictredis对象,与redis服务器建⽴连接
        sr=strictredis()
        #获取所有的键
        result=sr.keys()
        #输出响应结果,所有的键构成⼀个列表,如果没有键则返回空列表
        print(result)
    except exception as e:
        print(e)

 

操作string完整示例

from redis import strictredis

if __name__ == '__main__':
    # 创建一个strictredis对象,连接redis数据库
    try:
        sr = strictredis()
        # 添加一个key,为name,value为yifchan
        # res = sr.set('name', 'yifchan')
        # print(res)  # true

        # 修改name的值为yifchen
        # res = sr.set('name', 'yifchen')
        # print(res)  # true

        # 获取name的值
        # res = sr.get('name')
        # print(res)  # b'yifchan'  b'yifchen'

        # # 获取数据库中所有的键
        # res = sr.keys()
        # print(res)  # [b'name']

        # # 删除name及所对应的值
        # res = sr.delete('name')
        # print(res)  # [b'name']

        # res = sr.keys()
        # print(res)  # []

        # 假设已经在redis中设置了多个键
        # 127.0.0.1: 6379 > mset a1 ha a2 xi

        res = sr.keys()
        print(res)  # [b'a1', b'a2']

        # 删除多个键值
        res = sr.delete('a1', 'a2')
        print(res)  # 2

        res = sr.keys()
        print(res)  # []

    except exception as e:
        print(e)

 

redis存储session信息

安装包

pip install django-redis-sessions

django使用redis存储sesson实例

settings.py

# 设置redis存储sessions信息
session_engine = 'redis_sessions.session'
session_redis_host = 'localhost'
session_redis_port = 6379
session_redis_db = 2
session_redis_password = ''
session_redis_prefix = 'session'  # session:唯一标识码

 

views.py

from django.shortcuts import render, httpresponse

# create your views here.


def set_session(request):
    """设置session信息"""
    request.session['username'] = 'yifchan'
    request.session['age'] = 18

    return httpresponse('设置session')



def get_session(request):
    """获取session信息"""
    username = request.session['username']
    age = request.session['age']

    return httpresponse(username + ':' + str(age))

 

url

urlpatterns = [
    url(r'^set_session/', views.set_session),
    url(r'^get_session/', views.get_session),
]