首页
仓库
文档
nginx手册
Docker手册
workerman
Flask
PHP
python
RabbitMQ
其他
Linux
占位1
占位2
目录
###DEMO ```python import redis # 引入redis库 print(redis.__version__) #模板版本 #基本操作 r = redis.Redis(host='127.0.0.1', port=6379, db=0) # 建立连接 r.set('key1', "value1") # 写入数据 r.set("str_set_expire_demo", "val1", ex=10) #写入数据 10秒后过期 print(r.exists("key1")) #变量是否存在 1存在 0不存在 v=r.get('key1') # 读出数据 print(v) r.append("str", "abc") #字符串追加 =>abc r.append("str", "xyz") # =>abcxyz r.incr("demo1", 1) # 加1 数值型 r.decr("demo1", 1) # 减1 数值型 r.incrbyfloat("demo2", 18.98) r.incrbyfloat("demo2", -11.98) # 列表类型 r.type('list1') # 查看类型 r.llen('list1') # 该键包含多少个元素 r.lpush('list1', 12) #列表的左边插入元素 值是12 r.lindex('list1', 0) # 查看第一个元素的值 r.lindex('list1', 1) # 读取第二个元素的值 r.rpush('list1', 180) # 在右边插入一个元素180 r.lindex('list1', -1) # 最右边的元素的值 -1是最后一个 r.lpop() # 删除最左边的。返回值是原来最左边元素的值。 r.rpop('list1') # 删除最右边的,也就是倒数第一个元素,返回值原来最左边元素的值。 #======集合操作 r.sadd('set1', 1) # 添加一个元素1 ,如果某个值以前就存在了,就不会添加了 r.sadd('set1', 'a','abc','a') # 添加一个多元素 r.scard('set1') # 得到现在集合中元素的个数 print(r.scard('set1')) print(r.smembers('set1')) #该函数得到集合内所有的元素,返回一个普通的集合。 r.srem('set1', 'a') # 删除一个元素 ``` 下面是我抄的,应该不能用于web中 ###订阅者 ```python import redis # 引入库 r = redis.Redis(host='127.0.0.1',port=6379) # 建立连接 channel = 'test_channel1' # 定义频道名 sub_obj = r.pubsub() # 创建订阅对象 sub_obj.subscribe(channel) # 订阅到指定的频道上 sub_obj.parse_response() # 等待消息 while True: # 无限循环 msg = sub_obj.parse_response() # 得到消息内容 print(msg) #=========================多线程版 import redis # 引入库 import threading import threading as th r = redis.Redis(host='127.0.0.1',port=6379) # 建立连接 channel = 'test_channel1' # 定义频道名 sub_obj = r.pubsub() # 创建订阅对象 sub_obj.subscribe(channel) # 订阅到指定的频道上 sub_obj.parse_response() # 等待消息 def thread_entry(msg): print(str(th.get_ident())+"Received Msg: %s" % msg) while True: # 无限循环 msg = sub_obj.parse_response() # 得到消息内容 print(msg) t = threading.Thread(target=thread_entry, kwargs={'msg': msg} ,daemon = True) t.start() ``` ###发布者 ```python import time import redis r = redis.Redis(host='127.0.0.1',port=6379) # 建立连接 channel = 'test_channel1' # 频道名,要和订阅代码一致 for i in range(10,101): r.publish(channel, "msg"+str(i)) # 发送消息 time.sleep(1) ```