1、“cannot import name 'Redis' from 'redis' "
//python文件名用了“redis.py”,改成其他的就好了。这个一定要注意,很容易犯这种错,想要做什么功能,就用这个功能命名。
2、NameError:name 'redis' is not defined
//我开始是from redis import Redis,改成import redis,就可以了
3、set第一次后,隔了两天继续set,就报错“【Redis】报错:Redis is configured to save RDB snapshots, but it is currently not able to persist on disk”
//是因为强制把redis快照关闭了,导致不能持久化的问题,在网上查了一些相关解决方案,通过stop-writes-on-bgsave-error值设置为no即可避免这种问题。命令行下如下操作:
127.0.0.1:6379> config set stop-writes-on-bgsave-error no
【练习】请将 Redis 作为 Python 的消息队列,实现消息的顺序存储和顺序读取。Python 进程结束再重新启动,保证消息队列中的数据不会丢失。
import redis标签:python,redis,练习,Redis,queue,队列,import,message From: https://www.cnblogs.com/1234roro/p/18006541
import atexit
# 连接到本地Redis服务器,默认端口是6379
redis_client = redis.Redis(host='localhost', port=6379, decode_responses=True)
# 定义消息队列的键名
message_queue_key = 'message_queue'
# 在程序退出时保存队列数据到Redis
def save_queue_to_redis():
redis_client.ltrim(message_queue_key, 0, -1)
# 在程序退出时注册保存队列数据到Redis的函数
atexit.register(save_queue_to_redis)
# 生产者向队列中添加消息
def enqueue_message(message):
redis_client.rpush(message_queue_key, message)
# 消费者从队列中获取消息
def dequeue_message():
return redis_client.lpop(message_queue_key)
# 添加两条消息
enqueue_message("Message 1")
enqueue_message("Message 2")
# 在重新启动后,从队列中读取消息
message = dequeue_message()
while message:
print("Received Message:", message)
message = dequeue_message()