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%免费】
软件测试面试文档
我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。