zoukankan      html  css  js  c++  java
  • python redis

    显例:

    import redis
    class RedisUtils(object):
        def __init__(self):
            if not hasattr(RedisUtils, 'pool'):
                RedisUtils.getPool()  #创建redis连接pool
            self.coon = redis.Redis(connection_pool=RedisUtils.pool)
        @staticmethod
        def getPool():
            RedisUtils.pool = redis.ConnectionPool(host='192.168.18.199', port=6379, password='sss', db=10, decode_responses=True)
        def set(self, key, value, exps=None):
            if exps:
                self.coon.set(key, value, ex=30)
            else:
                self.coon.set(key, value)
        def get(self, key):
            return self.coon.get(key)
    if __name__ == '__main__':
        # utils = RedisUtils()
        # utils.set("sea", "test")
        # utils.set("xixi", "test", 10)
        # print(utils.get("sea"))
        conn_redis = redis.Redis(host='192.168.18.199', port=6379, password='xxx', db=10)
        conn_redis.set('娘子', '啊哈')
        conn_redis.set('gg', '啊哈', ex=10)
        print(conn_redis.get("gg").decode("utf-8"))

     

    不使用连接池:
     

    import redis
    conn_redis = redis.Redis(host='127.0.0.1', port=6379, password='123456', db=1)
    conn_redis.set('娘子', '啊哈')
    conn_redis.set('娘子', '啊哈',ex=30) #30s 过期

    python 操作redis,使用连接池:

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

    def getcoon():
          pool = redis.ConnectionPool(host='192.168.25.126', port=6379, password='123456', db=0)
          coon = redis.Redis(connection_pool=pool)
          coon.set('key', 'value')
          res = coon.get('key')
          return res
    coon.set('sea', 'hahhahaha', ex=30)    # 过期时间单位s
    set(name, value, ex=None, px=None, nx=False, xx=False)
    在 Redis 中设置值,默认,不存在则创建,存在则修改。
    参数:
    ex - 过期时间(秒)
    px - 过期时间(毫秒)
    nx - 如果设置为True,则只有name不存在时,当前set操作才执行
    xx - 如果设置为True,则只有name存在时,当前set操作才执行

    redis 使用连接池操作

    class OPRedis(object):
    
        def __init__(self):
            if not hasattr(OPRedis, 'pool'):
                OPRedis.getRedisCoon()  #创建redis连接
            self.coon = redis.Redis(connection_pool=OPRedis.pool)
    
        @staticmethod
        def getRedisCoon():
            OPRedis.pool = redis.ConnectionPool(host=redisInfo['host'], password=redisInfo['password'], port=redisInfo['port'], db=redisInfo['db'])
    
        """
        string类型 {'key':'value'} redis操作
        """
    
        def setredis(self, key, value, time=None):
            #非空即真非0即真
            if time:
                res = self.coon.setex(key, value, time)
            else:
                res = self.coon.set(key, value)
            return res
    
        def getRedis(self, key):
            res = self.coon.get(key).decode()
            return res
    
        def delRedis(self, key):
            res = self.coon.delete(key)
            return res
    
        """
        hash类型,{'name':{'key':'value'}} redis操作
        """
        def setHashRedis(self, name, key, value):
            res = self.coon.hset(name, key, value)
            return res
    
    
        def getHashRedis(self, name, key=None):
            # 判断key是否我为空,不为空,获取指定name内的某个key的value; 为空则获取name对应的所有value
            if key:
                res = self.coon.hget(name, key)
            else:
                res = self.coon.hgetall(name)
            return res
    
    
        def delHashRedis(self, name, key=None):
            if key:
                res = self.coon.hdel(name, key)
            else:
                res = self.coon.delete(name)
            return res

    redisInfo配置

     
    redisInfo = {
        "host": '192.168.1.112',
        "password": '123456',
        "port": 6379,
        "db": 0
    }

    原文:https://www.cnblogs.com/neozheng/p/10440405.html

  • 相关阅读:
    眼手组合-眼低手低者
    MongoDB、redis、memcached
    CAS单点登录配置 .
    Static attribute must be a String literal
    myeclipse 导包快捷键
    java生成json总结
    weblogic部署错误:weblogic.xml.jaxp.RegistrySAXParserFactory cannot be cast to javax.xml.parsers.SAXParserFactory
    xfire+spring webservice
    java中获取当前路径(转)
    MyEclipse使用指南(精简版) (转)
  • 原文地址:https://www.cnblogs.com/lshan/p/15034921.html
Copyright © 2011-2022 走看看