zoukankan      html  css  js  c++  java
  • redis -- python操作连接redis简单示例

    1.先安装 redis,pyredis

    sudo pip install redis  

    sudo pip install python-redis


    2.示例:

    importredis
    >>>r=redis.Redis(host='localhost',port=6379,db=0)
    >>>r.set('guo','shuai')
    True
    >>>r.get('guo')
    'shuai'
    >>>r['guo']            
    'shuai'
    >>>r.keys()
    ['guo']
    >>>r.dbsize()        #当前数据库包含多少条数据      
    1L
    >>>r.delete('guo')
    1
    >>>r.save()              #执行“检查点”操作,将数据写回磁盘。保存时阻塞
    True
    >>>r.get('guo');
    >>>r.flushdb()        #清空r中的所有数据
    True


    3.管道:

    server和client之间是利用socket发送tcp报文进行通信的,利用pipeline的方式从client打包多条命令一起发出,不需要等待单条命令的响应返回,而redis服务端会处理完多条命令后会将多条命令的处理结果打包到一起返回给客户端。这样就能节省浪费在网络延迟上的时间, pipeline方式打包命令发送,redis必须在处理完所有命令前先缓存起所有命令的处理结果。打包的命令越多,缓存消耗内存也越多。所以并是不是打包的命令越多越好。

    p=r.pipeline()        --创建一个管道
    >>>p.set('hello','redis')
    >>>p.sadd('faz','baz')
    >>>p.incr('num')
    >>>p.execute()
    [True,1,1]
    >>>r.get('hello')

    管道的命令可以写在一起,如:

    默认的情况下,管道里执行的命令可以保证执行的原子性,执行pipe = r.pipeline(transaction=False)可以禁用这一特性。


    附:Sentinel是一个管理多个redis实例的工具,它可以实现对redis的监控、通知、自动故障转移。
  • 相关阅读:
    向上造型
    Service与Activity通信
    adb报错:no permissions (user in plugdev group; are your udev rules wrong?); see [http://developer.android.com/tools/device.html]
    13-AB Test学习
    1-端到端机器学习项目
    12-数据分析框架
    2-电影推荐案例学习
    11-pyecharts使用Tab不完全代码示例
    22-基于Python构建GRPC服务
    akka练习
  • 原文地址:https://www.cnblogs.com/cxsabc/p/10627660.html
Copyright © 2011-2022 走看看