zoukankan      html  css  js  c++  java
  • Python 缓存服务

    缓存服务:mongodb、redis、memcache
    • mongodb:早期的缓存系统,直接持久话,数据即存内存也同步到硬盘。
    • redis:主流缓存系统,半持久化,默认存在内存,需要手动调用存在硬盘,可通过需求配置。
    • memcache:轻量级缓存服务,只能存在内存,不能持久化。

    Redis介绍
      Redis是单线程通过异步epoll实现高并发。最高读写速度(每秒/读8W数据)。
      Redis 默认有16个db 相当与16张表避免有相同的key冲突。
      redis是业界主流的key-value nosql 数据库之一。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。
     
    Redis优点
    • 异常快速 : Redis是非常快的,每秒可以执行大约110000设置操作,81000个/每秒的读取操作。
    • 支持丰富的数据类型 : Redis支持最大多数开发人员已经知道如列表,集合,可排序集合,哈希等数据类型。
    • 这使得在应用中很容易解决的各种问题,因为我们知道哪些问题处理使用哪种数据类型更好解决。
    • 操作都是原子的 : 所有 Redis 的操作都是原子,从而确保当两个客户同时访问 Redis 服务器得到的是更新后的值(最新值)。
    • MultiUtility工具:Redis是一个多功能实用工具,可以在很多如:缓存,消息传递队列中使用(Redis原生支持发布/订阅),在应用程序中,如:Web应用程序会话,网站页面点击数等任何短暂的数据;

    Linux Redis安装

    终端:tar -xvf 包名      #解压
    终端:cd redis-3.0.6   #进入目录

    终端:make        #编译安装

    • 启动服务端
    • 安装目录下:src/redis-server
    • 启动客户端
    • 安装目录下:src/redis-cli
    Python安装redis
    3.0内涉及到socket统一都是bays类型
     
    安装redis模块
    sudo pip install redis
    or
    sudo easy_install redis
    or
    
    操作模式

      1.python链接redis

      redis-py提供两个类Redis和StrictRedis用于实现Redis的命令,StrictRedis用于实现大部分官方的命令,并使用官方的语法和命令,Redis是StrictRedis的子类,用于向后兼容旧版本的redis-py。
    import redis
    # 创建实例对象,获取服务端IP地址 r = redis.Redis(host='192.168.1.150', port=6379) # 加入keys 与 value r.set('foo', 'Bar') # 打印foo value print(r.get('foo'))

      

      2.链接池

      不断的向redis内取数据,不断的链接建立socket资源消耗很大,可以使用连接池来。
      redis-py使用connection pool来管理对一个redis server的所有连接,避免每次建立、释放连接的开销。默认,每个Redis实例都会维护一个自己的连接池。可以直接建立一个连接池,然后作为参数Redis,这样就可以实现多个Redis实例共享一个连接池。
    import redis
    # 创建连接池实例对象,获取服务端IP地址 pool = redis.ConnectionPool(host='192.168.1.150', port=6379) # 链接连接池 r = redis.Redis(connection_pool=pool)
    # 加入keys与value r.set('foo', 'Bar')

    # 打印value值 print(r.get('foo'))

    memcache学习:http://www.cnblogs.com/wupeiqi/articles/5132791.html

  • 相关阅读:
    python2和python3中TestSuite().addTest的区别
    python2和python3中range的区别
    WebDriverAgent安装
    Charles IOS https抓包
    Python和 pytest的异常处理
    Python中yaml和json文件的读取和应用
    Python 获取当前文件所在路径
    自建包函数调用
    python的logging,将log保存到文件
    泛型
  • 原文地址:https://www.cnblogs.com/xiangsikai/p/8309612.html
Copyright © 2011-2022 走看看