zoukankan      html  css  js  c++  java
  • Redis使用

    Redis使用

    Redis

      Redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string、list、set、zset(sorted set)和hash。这些数据类型都支持push/pop、add/remove、取交集、并集和差集及其他更丰富的操作,而且这些操作都是原子性的。在此基础上,Redis支持各种不同方式的排序。与Memcached一样,为了保证效率,数据都是缓存在内存中。区别的是Redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。

    Python操作Redis

    安装Python连接redis的工具

    pip install redis
    

    Redis模块基本使用

    连接方式

      redis-py提供两个类Redis和StrictRedis用于实现Redis的命令,StrictRedis用于实现大部分官方的命令,并使用官方的语法和命令,Redis是StrictRedis的子类,用于向后兼容旧版本的redis-py。

    import redis
    
    
    r = redis.Redis()  # 默认连接本地
    # r = redis.Redis(host='11.12.13.14', port=6379)  # 可配置要连接的IP和端口
    
    r.set('name', 'zlf')
    print(r.get('name')
    

    连接池

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

    import redis
    
    pool = redis.ConnectionPool()
    
    r = redis.Redis(connection_pool=pool)
    
    r.set('age', age)
    print(r.get('age'))
    

    管道

      redis-py默认在执行每次请求都会创建(连接池申请连接)和断开(归还连接池)一次连接操作,如果想要在一次请求中指定多个命令,则可以使用pipline实现一次请求指定多个命令,并且默认情况下一次pipline 是原子性操作。

    import redis
    
    pool = redis.ConnectionPool()
    
    r = redis.Redis(connection_pool=pool)
    
    # pipe = r.pipeline(transaction=False)
    pipe = r.pipeline(transaction=True)
    pipe.multi()
    
    pipe.set('name', 'Q1mi')
    pipe.set('role', 'JPG')
    
    pipe.execute()
    

    Django配置Redis

    安装

      Django项目中配置Redis作为cache缓存,需要先安装django-redis模块。

    pip install django-redis
    

    配置

      在settings.py中,按如下配置CACHE连接的Redis信息:

    CACHES = {
        "default": {
            "BACKEND": "django_redis.cache.RedisCache",
            "LOCATION": "redis://127.0.0.1:6379",
            "OPTIONS": {
                "CLIENT_CLASS": "django_redis.client.DefaultClient",
                "CONNECTION_POOL_KWARGS": {"max_connections": 100},
                # "PASSWORD": "密码",
                "DECODE_RESPONSES":True
            }
        },
    }
    

    使用

    先获取redis连接

    import django_redis
    
    CACHE = django_redis.get_redis_connection()
    

    在视图中

    CACHE.set(key, value)
    
  • 相关阅读:
    (转)一次棘手的rootvg更换硬盘处理过程
    mysql:服务器错误代码
    (转)运行跟踪格式化程序
    (转)InnoDB存储引擎MVCC实现原理
    (转)漫谈JVM
    (转)mysql、innodb和加锁分析
    (转)DB2和 Oracle的并发控制(锁)比较
    (转)Mysql主从复制搭建及详解
    BigDecimal 、BigInteger
    Date、DateFormat、SimpleDateFormat、Calendar
  • 原文地址:https://www.cnblogs.com/ZN-225/p/14667227.html
Copyright © 2011-2022 走看看