python 链接codis 报错解决办法 command 'EXEC' is not allowed

[[email protected] ceph]# python ../pkg/redisbase.py
Traceback (most recent call last):
  File "../pkg/redisbase.py", line 85, in redis_hget
    values = self.pipe.execute()
  File "/usr/lib/python2.7/site-packages/redis/client.py", line 2578, in execute
    return execute(conn, stack, raise_on_error)
  File "/usr/lib/python2.7/site-packages/redis/client.py", line 2470, in _execute_transaction
    response = self.parse_response(connection, ‘_‘)
  File "/usr/lib/python2.7/site-packages/redis/client.py", line 2536, in parse_response
    self, connection, command_name, **options)
  File "/usr/lib/python2.7/site-packages/redis/client.py", line 577, in parse_response
    response = connection.read_response()
  File "/usr/lib/python2.7/site-packages/redis/connection.py", line 574, in read_response
    raise response
ResponseError: handle request, command ‘EXEC‘ is not allowed

m6
[[email protected] ceph]# python ../pkg/redisbase.py
Traceback (most recent call last):
  File "../pkg/redisbase.py", line 85, in redis_hget
    values = self.pipe.execute()
  File "/usr/lib/python2.7/site-packages/redis/client.py", line 2578, in execute
    return execute(conn, stack, raise_on_error)
  File "/usr/lib/python2.7/site-packages/redis/client.py", line 2470, in _execute_transaction
    response = self.parse_response(connection, ‘_‘)
  File "/usr/lib/python2.7/site-packages/redis/client.py", line 2536, in parse_response
    self, connection, command_name, **options)
  File "/usr/lib/python2.7/site-packages/redis/client.py", line 577, in parse_response
    response = connection.read_response()
  File "/usr/lib/python2.7/site-packages/redis/connection.py", line 574, in read_response
    raise response
ResponseError: handle request, command ‘EXEC‘ is not allowed

解决办法:

self.pipe = self.conn.pipeline(transaction=False)

整行代码上贴

#!/usr/bin/env python
#-*-coding:UTF-8-*-
"""
@Item   :  cheetah v1.0
@Author :  william
@Group  :  XXX XXX
@Date   :  2017-03-15
@E-mail :  
@Funtion:
        redis_set : Redis in the form of pipe insert data, json hash as a string print
        redis_get : Redis inprintion, and json string into the original print
"""

import sys,os,time,redis,traceback,json
sys.path.append("/data/cheetah/")
reload(sys)
sys.setdefaultencoding("utf8")

from pkg import log
from pkg import config
LOG = log.get_logger(__name__)
cfg = config
RedisCONF = cfg.load_cfg()["redis"]

 
class RedisBase(object):
    ‘‘‘ Establish redis session connection pool ‘‘‘
    def __init__ (self):
        self.host = RedisCONF[‘host‘]
        self.port = RedisCONF[‘port‘]
        self.db = RedisCONF[‘db‘]
        try:
            pool = redis.ConnectionPool(host = self.host, port = self.port, db = self.db)
            self.conn  = redis.Redis(connection_pool=pool)
            self.pipe = self.conn.pipeline(transaction=False)
        except:
            LOG.error(traceback.print_exc())
            return traceback.print_exc()

    def redis_set(self,keys=None ,values=None):
        ‘‘‘ Insert redis databases,keys = key ,values = value‘‘‘
        try:
            self.pipe.set(keys,json.dumps(values))
            self.pipe.execute()
        except:
            LOG.error(traceback.print_exc())
            return traceback.print_exc()

    #add by william, for hash set
    def redis_hset(self,field, key,values ):
        ‘‘‘insert redis key, field ,values‘‘‘
        try:
            self.pipe.hset(field,key, json.dumps(values))
            self.pipe.execute()
        except:
            LOG.error(traceback.print_exc())
            return traceback.print_exc()

    #add by william, for hash set and add expire
    def redis_set_expire(self, key,values ):
        ‘‘‘insert redis key, field ,values‘‘‘
        try:
            self.pipe.set(key,json.dumps(values))
            self.pipe.expire(key,604800)
            self.pipe.execute()
        except:
            LOG.error(traceback.print_exc())
            return traceback.print_exc()

    #add by william, get from hash
    def redis_hget(self, key, field = None):
        ‘‘‘get by key, return the dict‘‘‘
        try:
            fields = []
            if field:
                fields.append(field)
            else:
                fields = self.conn.hkeys(key)
            for f in fields:
                self.pipe.hget(key, f)
            values = self.pipe.execute()
            values = [json.loads(i) for i in values]
            return dict(zip(fields, values))
        except:
            print traceback.format_exc()
            return key

    def redis_get(self,argv):
        ‘‘‘ Getting single KYES values ,argv : is keys‘‘‘
        try:
            self.pipe.get(argv)
            return json.loads( self.pipe.execute()[0])
        except:
            LOG.error(traceback.print_exc())
            return traceback.print_exc()

    def redis_getkeys(self):
        ‘‘‘ Getting all keys ‘‘‘
        try:
            self.pipe.keys(‘*‘)
            return self.pipe.execute()[0]
        except:
            LOG.error(traceback.print_exc())
            return traceback.print_exc()

    def redis_delete(self,keys):
        try:
            self.pipe.delete(keys)
            self.pipe.execute()
            return ‘Delete True‘
        except:
            LOG.error(traceback.print_exc())
            return ‘Delete False‘

if __name__ == "__main__":
    sc = RedisBase()
    bs = sc.redis_hget(‘m6‘)

    for x,y in bs.items():
        for a,b in y.items():
            if a == ‘ceph_df‘:
                print b

python 链接codis 报错解决办法 command 'EXEC' is not allowed

时间: 2024-11-05 12:18:55

python 链接codis 报错解决办法 command 'EXEC' is not allowed的相关文章

python安装locustio报错error: invalid command 'bdist_wheel'的解决方法

locust--scalable user load testing tool writen in Python(是用python写的.规模化.可扩展的测试性能的工具) 安装locustio需要的环境条件是:Python2.6+,但是不支持Python3. 今天在cmd里运行pip install locustio,报错提示:error: invalid command 'bdist_wheel'. 原因:pip和setuptools的版本较低. 解决方案:升级pip和setuptools. 一

PHP多次调用Mysql存储过程报错解决办法

PHP多次调用Mysql数据库的存储过程会出现问题,主要问题为存储过程中执行多次SQL语句不能一一释放导致的,网上找了一些解决办法,比如使用 multi_query 然后一个一个释放,但是发现根本不适合我们的项目,我们使用CI框架写的,更多的是使用CI的数据库处理方法.所以只能另辟蹊径. 一次偶然,把Mysql链接方式改成了mysqli,两种不同的PHP连接mysql的扩展,官方在高版本中推荐使用mysqli,结果却奇迹般好了,使用Mysql长连接也行,天意么? PHP多次调用Mysql存储过程

C-FREE5 出现 ld.exe报错 解决办法

因为入门是接触了C free,发现是蛮不错的一个IDE,但是用了很久一段时间之后,安装了MinGW发现不能用了.. 出问题之后换用了sublime text顶替了一段时间,今天闲着无聊,修理了下c-free,发现网上出同类问题的人还是蛮多的,现把问题及答案留在这里, 如果没能帮到你还请原谅 ^_^ 状况1:正常运行程序时偶尔会冒出ld.exe,如图: 此处强调的出现频率是 偶尔 ,素以具体报什么错已经记不清了,但是解决方法是这样的,ctrl+alt+delete,蓝后点任务管理器, 蓝后在进程里

最新版ADT新建项目报错解决办法(三)

自从在谷歌官网下载了最新版的ADT,版本号version:23.0.2.1259578,集成版的(adt-bundle-windows-x86-20140702.rar).笔者就走上了与报错斗争的道路,新建项目时总无故报错,提示内容为: [2014-12-11 09:46:50 - test] E:\workspace\test\res\values\styles.xml:7: error: Error retrieving parent for item: No resource found

jsp页面中onsubmit="return checklogin();"报错解决办法

选择Window->Preferences->MyEclipse->Validation 去掉方框里的对号,然后Apply 然后点击Yes->然后再点击ok->Yes,就好了,如果你打开了那个出现错误jsp页面的话,请关掉重现打开就ok啦 jsp页面中onsubmit="return checklogin();"报错解决办法,布布扣,bubuko.com

dl380G8安装windows 2008R2 报错解决办法。

dl380安装windows2008R2时报错,安装包是我一直在用的安装包.我用光盘.优盘还是ILO安装都是报同样的错误.详细错误如下: 1.在复制完系统后重启安装时报下面的错误.我点击确定后系统会重启. windows cannot read the <productkey>setting from the unattend answer file 2.重启后报下面的错误,然后是不停的重启. 原因:是因为HP Intelligent Provisioning版本1.6都存在这个问题. 解决办

Tomcat启动报错java.net.AbstractPlainSocketImpl(java/net/AbstractPlainSocketImpl.java:178:-1)Struts在网络复杂情况下启动报错解决办法

SSH项目 在网络复杂的情况(具体规律未知)下,Tomcat启动时,报如下错误: [ERROR] 2014-08-12 14:52:58,484 [org.apache.struts2.dispatcher.Dispatcher :27] - Dispatcher initialization failedUnable to load configuration. - Class: java.net.AbstractPlainSocketImplFile: AbstractPlainSocket

关于安装itunes提示未找到quicktime的报错解决办法

首先解决童鞋们在安装itunes提示itunes要求您的电脑运行Windows7或更高版本的报错解决办法,如下图: 这是因为您当前的电脑系统是XP系统最新的itunes系统要求是Windows7.Windows2000.Windows2003.vistar等更高版本的操作系统,这个您也不必担心,不需要更换系统的,您只要搜索下载个老版本的itunes即可,不知道哪个版本可以安装,就之间搜itunes XP系统就可以,如下图: 搜到下载下来安装即可,对于安装好后打开提示未找到quicktime的报错

Nodejs npm安装socket.io报错解决办法

安装socket.io时,报错,提示需要安装Microsoft visual studio 2005 或 Net framework 2.0 sdk,没有找到vcbuild.exe,解决办法是安装 .NET Framework 2.0 Software Development Kit (SDK) http://www.microsoft.com/en-us/download/details.aspx?id=15354 并将 C:\Program Files\Microsoft Visual St