• 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

  • 相关阅读:
    Vue--vue-Router
    Vue--vue中的组件、组件绑定事件和数据、私有组件、子组件,父子组件参数互传
    CF 631C report
    生日Party 玄学多维DP
    HDU-6376 度度熊剪纸条
    CF 1012C Dp
    CF 997A
    HDU-1051 一个DP问题
    偶尔间看到,来开心一下
    合并石子
  • 原文地址:https://www.cnblogs.com/yoyoma0355/p/9626511.html
Copyright © 2020-2023  润新知