python 操作 redis
import redis # # redis 取出的结果默认是字节,我们可以设定 decode_responses=True 改成字符串。 # r = redis.StrictRedis(host='localhost', port=6379, db=0,decode_responses=True) # # 写入数据 # r.set('foo', 'bar') # # 获取数据 # r.get('foo') # # connection pool 来管理对一个 redis server 的所有连接,避免每次建立、释放连接的开销。 # pool = redis.ConnectionPool(host='localhost', port=6379, decode_responses=True) # r = redis.Redis(host='localhost', port=6379, decode_responses=True) # r.set('name', 'runoob') # 设置 name 对应的值 # print(r.get('name')) # 取出键 name 对应的值 # pool = redis.ConnectionPool(host='localhost', port=6379, decode_responses=True) # r = redis.Redis(connection_pool=pool) # # ex - 过期时间(秒) # r.set('food', 'mutton', ex=10) # key是"food" value是"mutton" 将键值对存入redis缓存 # print(r.get('food')) # mutton 取出键food对应的值 # # px - 过期时间(毫秒) # r.set('food', 'beef', px=30000) # print(r.get('food')) # print(r.set('food',123)) # # nx - 如果设置为True,则只有name不存在时,当前set操作才执行--如果设置为True,则只有name存在时,当前set操作才执行 (修改) # pool = redis.ConnectionPool(host='localhost', port=6379, decode_responses=True) # r = redis.Redis(connection_pool=pool) # print(r.set('fruit', 'watermelon11', nx=True)) # # 设置值,只有name不存在时,执行设置操作(添加) # print(r.setnx('fruit1', 'banana')) # fruit1不存在,输出为True # ------批量设置 # # redis 取出的结果默认是字节,我们可以设定 decode_responses=True 改成字符串。 # r = redis.StrictRedis(host='localhost', port=6379, db=0,decode_responses=True) # # 一次写入多个数据 # r.mset({'k1':'v1','k2':'v2'}) # # 一次获取多个值 # print(r.mget("k1", "k2")) # print(r.mget(['k1', 'k2'])) # --------高级api r = redis.StrictRedis(host='localhost', port=6379, db=0,decode_responses=True) # # 设置新值并获取原来的值 # print(r.getset("food", "barbecue4")) # # 截取值输出 # print(r.getrange("food", 0, 2)) # # 返回name对应值的字节长度(一个汉字3个字节) # print(r.strlen("food")) # -------应该场景 # 应用场景 – 页面点击数 r.set("visit:12306:totals", 1) ##当redis服务器启动时,可以从关系数据库读入点击数的初始值 print(r.get("visit:12306:totals")) r.incr("visit:12306:totals") ##每当有一个页面点击,则使用INCR增加点击数即可。 步长可用 r.incr("visit:12306:totals",2) 每次调用+2 r.incr("visit:12306:totals") print(r.get("visit:12306:totals")) ##页面载入的时候则可直接获取这个值
参考: https://www.runoob.com/w3cnote/python-redis-intro.html
:号 展示文件分割
r.set("a:b:c",1)
2023年
import redis
'''
这种连接是连接一次就断了,耗资源.端口默认6379,就不用写
r = redis.Redis(host='127.0.0.1',port=6379,password='tianxuroot')
r.set('name','root')
print(r.get('name').decode('utf8'))
'''
'''
连接池:
当程序创建数据源实例时,系统会一次性创建多个数据库连接,并把这些数据库连接保存在连接池中,当程序需要进行数据库访问时,
无需重新新建数据库连接,而是从连接池中取出一个空闲的数据库连接
'''
pool = redis.ConnectionPool(host='127.0.0.1',password='helloworld', port=6379, decode_responses=True) #实现一个连接池
r = redis.Redis(connection_pool=pool)
r.set('foo','bar')
print(r.get('foo').decode('utf8'))
print(r.setnx('lucax', 'bar')) #存在则插入失败
r.expire('lucax', 10) #加超时时间
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
2020-01-18 python函数总结(转载的 有空看下)
2018-01-18 Network Emulator Toolkit (NEWT) 网络限速工具 (手机和电脑方面)
2018-01-18 如何进行网站的安全测试