zoukankan      html  css  js  c++  java
  • python操作redis

    当前测试的项目需要实现:python 连接redis,并将任务扔进redis里面

    一、认识redis 

    redis 是一个key-value存储系统,它支持存储的value类型相对更多,包括stringlistsetzset(有序集合)和hash类型,这些数据类型都支持 push/pop、add/remove及取交集并集和差集及更丰富的操作。

    二、python连接redis

    1. 连接方式 

    redis-py提供两个类Redis和StrictRedis用于实现Redis的命令, StrictRedis用于实现大部分官方的命令,并使用官司方的语法和命令,Redis是StrictRedis的子类

    import redis

    r = redis.Redis(host='192.168.0.110',port =6379,db=0,password='')

    r.set('name','zhangsan')  #添加

    print r.get('name')    #获取

    2.连接池

    redis-py使用connection pool 来管理对一个redis server 的所有连接,避免每次建立 、释放连接的开销。默认,每个Redis实例都会维护一个自己的连接池。可以直接建立一个连接池,然后作为参数Redis,这样就可以实现多个Redis实例共享一个连接池。

    #!/usr/bin/env python

    # -*- coding:utf-8 -*-

    import redis

    pool = redis.ConnectionPool(host='192.168.0.110',port=6379)

    r = redis.Redis(connection_pool=pool)

    r.set('name','zhangsan')   #添加

    print r.get('name')   #获取

    3. 操作

     3.1 String操作

            redis中的String在内存中按照一个name对应一个value来存储

    3.1.1 set()

    #在redis中设置值,默认不存在则创建,存在则修改。

    r.set('name','zhangsan')

    语法:set(name,value,ex=None,px=None,nx=False,xx=False)

    ex:过期时间(秒)

    px:过期时间(毫秒)

    nx:如果设置为True,则只有name不存在时,当前set操作才执行,同setnx(name,value)

    xx: 如果设置为True,则只有name存在时,当前set操作才执行。

    setex:(name,value,time)   #设置过期时间秒

    psetex(name,time_ms,value)   #设置过期时间毫秒

     

    3.1.2 批量设置mset()

      r.mset(name1='zhangsan',naem2="lisa")

           

    r.mgset('name1':'zhangsan','name2':'lisa')

    3.1.3 批量获取 mget()

    mget(keys,*args)

    print  r.mget("name1","name2")

    li = ["name1","name2"]

    print r.mget(li) 

    3.1.4 getset(name,value)   #设置新值、打印原值

    print r.getset('name1',wangwu)   #输出:zhangsan

    pritn r.get('name1')   #输出:wangwu

    3.1.5 getrange(key,start,end)  #根据字节获取子序列

    r.set('name','zhangsan')

    print r.getrange('name',0,3)  #输出:zhan

    3.1.6 setrange(name,offset,value)   #修改字符串内容,从指定字符串索引开始向后替换,如果新值太长时,则向后添加

    r.set('name','zhangsan')

    r.setrange('name',1,'z')

    print r.get('name')   #输出:zzangsan

    r.setrange('name',6,'zzzzzzz')

    print r.get('name')    #输出:zzangszzzzz

    3.1.7  

      

    4. 管道 

     参考链接:http://www.cnblogs.com/melonjiang/p/5342505.html

  • 相关阅读:
    9.12 其他样式;JS
    9.11 样式表
    9.9 样式表
    PHP延迟几秒后执行,PHP延迟执行,PHP停顿几毫秒后执行 usleep() 和 sleep()
    PHP 去除url参数中出现+、空格、=、%、&、#等字符的解决办法, PHP去除影响url路径的字符
    java第一堂课-常用的电脑快捷键操作和重要的dos命令
    常用第三方接口,支付宝支付,微信支付,软著,IOS开发者账号
    苹果开发者账号申请流程完整版 https://www.jianshu.com/p/655380201685
    thinkphp 去重查询
    将数据导【入】【excel表】格式 前端页面
  • 原文地址:https://www.cnblogs.com/yoyoma0355/p/9626511.html
Copyright © 2011-2022 走看看