python 常用的10个关于redis的脚本

2797 篇文章 2 订阅
2634 篇文章 14 订阅

1. 设置和获取键值

设置键值对,并从中获取值。

import redis
def set_and_get_key(key, value):
    r = redis.Redis(host='localhost', port=6379, db=0)
    r.set(key, value)
    return r.get(key).decode('utf-8')
if __name__ == "__main__":
    key = "example_key"
    value = "example_value"
    print(set_and_get_key(key, value))

2. 删除键

删除一个键值对。

import redis
def delete_key(key):
    r = redis.Redis(host='localhost', port=6379, db=0)
    r.delete(key)
if __name__ == "__main__":
    key = "example_key"
    delete_key(key)

3. 列出所有键

列出当前数据库中的所有键。

import redis
def list_all_keys():
    r = redis.Redis(host='localhost', port=6379, db=0)
    keys = r.keys()
    return [key.decode('utf-8') for key in keys]
if __name__ == "__main__":
    print(list_all_keys())

4. 哈希表操作

使用哈希表来存储复合对象。

import redis
def hash_operations(key, field, value):
    r = redis.Redis(host='localhost', port=6379, db=0)
    r.hset(key, field, value)
    return r.hget(key, field).decode('utf-8')
if __name__ == "__main__":
    key = "user:1"
    field = "name"
    value = "John Doe"
    print(hash_operations(key, field, value))

5. 列表操作

使用列表来存储多个元素。

import redis
def list_operations(key, value):
    r = redis.Redis(host='localhost', port=6379, db=0)
    r.rpush(key, value)
    return r.lrange(key, 0, -1)
if __name__ == "__main__":
    key = "my_list"
    value = "item1"
    items = list_operations(key, value)
    for item in items:
        print(item.decode('utf-8'))

6. 集合操作

使用集合来存储不重复的元素。

import redis
def set_operations(key, member):
    r = redis.Redis(host='localhost', port=6379, db=0)
    r.sadd(key, member)
    return r.smembers(key)
if __name__ == "__main__":
    key = "my_set"
    member = "item1"
    members = set_operations(key, member)
    for member in members:
        print(member.decode('utf-8'))

7. 排序集操作

使用排序集来存储带有分数的元素。

import redis
def sorted_set_operations(key, member, score):
    r = redis.Redis(host='localhost', port=6379, db=0)
    r.zadd(key, {member: score})
    return r.zrange(key, 0, -1, withscores=True)
if __name__ == "__main__":
    key = "my_sorted_set"
    member = "item1"
    score = 10.0
    items = sorted_set_operations(key, member, score)
    for item, score in items:
        print(f"{item.decode('utf-8')} with score {score}")

8. 发布与订阅

发布消息到频道,并订阅接收消息。

import redis
import threading
def publish_message(channel, message):
    r = redis.Redis(host='localhost', port=6379, db=0)
    r.publish(channel, message)
def subscribe_to_channel(channel):
    r = redis.Redis(host='localhost', port=6379, db=0)
    pubsub = r.pubsub()
    pubsub.subscribe(channel)
    for item in pubsub.listen():
        if item['type'] == 'message':
            print(f"Received message: {item['data'].decode('utf-8')}")
if __name__ == "__main__":
    channel = "test_channel"
    message = "Hello, world!"
    # Start subscribing in a separate thread
    subscriber_thread = threading.Thread(target=subscribe_to_channel, args=(channel,))
    subscriber_thread.start()
    # Wait a bit before publishing
    import time
    time.sleep(1)
    # Publish a message
    publish_message(channel, message)

9. 使用管道减少往返次数

使用管道来减少网络往返次数。

import redis
def pipeline_operations(key, value):
    r = redis.Redis(host='localhost', port=6379, db=0)
    pipe = r.pipeline()
    pipe.set(key, value)
    pipe.get(key)
    results = pipe.execute()
    return results[1].decode('utf-8')
if __name__ == "__main__":
    key = "pipeline_key"
    value = "pipeline_value"
    print(pipeline_operations(key, value))

10. 使用事务

使用事务来确保一组操作的原子性。

import redis
def transaction_operations(key, value):
    r = redis.Redis(host='localhost', port=6379, db=0)
    pipe = r.pipeline(transaction=True)
    pipe.multi()
    pipe.set(key, value)
    pipe.get(key)
    results = pipe.execute()
    return results[1].decode('utf-8')
if __name__ == "__main__":
    key = "transaction_key"
    value = "transaction_value"
    print(transaction_operations(key, value))

最后: 下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取【保证100%免费】

在这里插入图片描述

 ​​​​软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值