新手初学

#!/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]

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值