#!/usr/bin/env python3 # -*- coding:utf-8 -*- import redis ''' 这种连接是连接一次就断了,消耗资源,端口默认是6379,就不用写 ''' ''' r = redis.Redis(host='127.0.0.1',port=6379,decode_responses=True) r.set('name','root') print(r.get('name')) ''' ''' 连接池: 当程序创建数据源实例时,系统会一次性创建多个数据库连接,并把这些数据库连接保存在连接池中,当程序需要进行数据库访问时 无需重新创建数据库连接,而是从连接池中取出一个空闲的数据库连接 decode_responses参数的值必须为True,否则中文无法正常输出 ''' pool = redis.ConnectionPool(host='127.0.0.1',port=6379,decode_responses=True) r = redis.Redis(connection_pool=pool) ''' 管道: redis-py 默认在执行每次请求都会创建(连接池申请连接)和断开(归还连接池)一次连接操作,如果想要在一次请求中指定多个命令,则可以使用pipline 实现一次请求指定多个命令,并且默认情况下一次pipline是原子性操作 ''' pipline = r.pipeline(transaction=True) ''' redis有序集合操作,有序和散列一样,都用于存储键值对; ''' r.zadd('score',{'student01':80,'student02':70}) print(r.zrange('score',0,-1)) #输出所有的键值对 print(r.zrangebyscore('score',0,70)) #输出值在该范围内的所有的键值对 print(r.zrem('score','student02')) #删除指定键值对,删除成功返回1,否则返回0 ''' redis 散列操作,可以存储多个键值对之间的映射。和字符串一样,散列存储的值即可以是字符串也可以是数字值, 并且用户同样可以对散列存储值的数字值执行自增操作或自减操作 ''' r.hset('classes','class_one','及格人数50人') r.hset('classes','class_two','及格人数30人') r.hdel('classes','class_two') pipline.execute() print(r.hgetall('classes')) #获取所有键值对 print(r.hdel('classes','class_two')) #删除之后,返回0 print(r.hget('classes','class_one')) #获取指定键值对值 print(r.hget('classes','class_two')) #获取指定键值对值,如果不存在,返回None ''' redis 集合操作,字符串必须唯一 ''' r.sadd('student','小明') r.sadd('student','小东') r.sadd('student','小红') r.sadd('student','小西') r.sadd('student','小南') r.sadd('student','小北') r.srem('student','小北') #删除集合中“小北”这个元素 pipline.execute() print(r.smembers('student')) #返回集合的结果集 print(r.sismember('student','小西')) #查询该元素是否存在结果集中,如果该元素不存在,则返回false,返回True print(r.sismember('student','小北')) #查询该元素是否存在结果集中,如果该元素不存在,则返回false,返回True ''' redis 链表操作命令,可以存储多个相同的字符串 ''' r.rpush('user_name','王娜娜') r.rpush('user_name','王敏') r.rpush('user_name','曹操') r.rpush('user_name','王昭君') r.rpush('user_name','李信') r.rpush('user_name','韩信') r.rpush('user_name','貂蝉') r.rpush('user_name','刘皇叔') pipline.execute() print(r.lrange('user_name',0,-1)) #返回范围内的元素值 print(r.lindex('user_name',0)) #返回指定下标的元素值 print(r.lpop('user_name')) #删除一个元素 ''' redis字符串操作 ''' r.set('user_name','张林珍') r.set('age',23) r.set('address','上海市青浦区赵巷镇金葫芦新村4区103号后门租户103号') r.delete('user_name') #删除key r.delete('age') r.delete('address') pipline.execute() gets = ['user_name','age','address'] print(r.mget(gets)) #返回结果为[None, None, None]
新手初学
最新推荐文章于 2024-07-09 15:51:54 发布