当前位置:首页 » 编程语言 » python操作redis

python操作redis

发布时间: 2022-07-15 00:54:20

⑴ 可以使用python读取java写入redis 的object数据,并解析吗

-redis 本来就只支持存储一些基本类型(数值,字符...)的。java将对象存储在redis中是将对象序列化后的字节数组存入redis的,所以你用python取到的redis中的数据时,会带有特殊的前缀,表示序列化后java的类信息。java获取这些数据的时候会有反序列的操作,所以不影响。但python取到数据后是无法解析的。
-Java 存储与python共享数据时,应避免将String字符串当做对象进行序列化存储,应直接以字符串的形式存储,如果需要共享对象,对象转化为json串存储。
-另外spring的redisTemplate 进行Hash操作时,就算你存储的是String类型的数据,也会被当做String对象序列化后存储。所以 如果过要操作redis的hash结构,建议实例化一个Jedis客户端进行操作。

⑵ python怎么使用redis

(1)使用 # easy_install redis
(2)直接编译安装
#wget https://pypi.python.org/packages/source/r/redis/redis-2.9.1.tar.gz
#tar xvzf redis-2.9.1.tar.gz
#cd redis-2.9.1
#python setup.py install

⑶ python怎么测试与redis的连接

Redis服务端:192.168.100.132;port=6379
Redis客户端:192.168.100.132
客户端操作:
安装python支持redis;
tar zxvf redis-2.9.1.tar.gz
cd redis-2.9.1
python setup.py install
服务端启动redis
/root/redis-2.2.12/src/redis-server
客户端测试:
[root@master ~]# python
>>> import redis
>>> r = redis.Redis(host='192.168.100.132',port=6379,db=0) //#如果设置了密码,就加上password=密码
>>> r.set('name','lansgg')
True
>>> r.get('name')
'lansgg'
>>> r.exists('name') //#看是否存在这个键值
True
>>> r.delete('name')
1
>>> r.dbsize() //#库里有多少key,多少条数据
0L
>>> r.set('name','lansgg')
True
>>> r.flushdb() // #删除当前数据库的所有数据
True
>>> r.get('name')
>>> r.set('name','lansgg')
True
>>> r.set('wm','leo')
True
>>> r.set('tt','coffee')
True
>>> r.keys() // # 列出所有键值。
['tt', 'wm', 'name']
>>> r.save() // #强行把数据库保存到硬盘。保存时阻塞
True
>>> r.dbsize()
3L
>>> dir(r)
['RESPONSE_CALLBACKS', '__class__', '__contains__', '__delattr__', '__delitem__', '__dict__', '__doc__', '__format__', '__getattribute__', '__getitem__', '__hash__', '__init__', '__mole__', '__new__', '__rece__', '__rece_ex__', '__repr__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', '_zaggregate', 'append', 'bgrewriteaof', 'bgsave', 'bitcount', 'bitop', 'blpop', 'brpop', 'brpoplpush', 'client_getname', 'client_kill', 'client_list', 'client_setname', 'config_get', 'config_resetstat', 'config_set', 'connection_pool', 'dbsize', 'debug_object', 'decr', 'delete', 'mp', 'echo', 'eval', 'evalsha', 'execute_command', 'exists', 'expire', 'expireat', 'flushall', 'flushdb', 'from_url', 'get', 'getbit', 'getrange', 'getset', 'hdel', 'hexists', 'hget', 'hgetall', 'hincrby', 'hincrbyfloat', 'hkeys', 'hlen', 'hmget', 'hmset', 'hscan', 'hset', 'hsetnx', 'hvals', 'incr', 'incrby', 'incrbyfloat', 'info', 'keys', 'lastsave', 'lindex', 'linsert', 'llen', 'lock', 'lpop', 'lpush', 'lpushx', 'lrange', 'lrem', 'lset', 'ltrim', 'mget', 'move', 'mset', 'msetnx', 'object', 'parse_response', 'persist', 'pexpire', 'pexpireat', 'ping', 'pipeline', 'psetex', 'pttl', 'publish', 'pubsub', 'randomkey', 'register_script', 'rename', 'renamenx', 'response_callbacks', 'restore', 'rpop', 'rpoplpush', 'rpush', 'rpushx', 'sadd', 'save', 'scan', 'scard', 'script_exists', 'script_flush', 'script_kill', 'script_load', 'sdiff', 'sdiffstore', 'sentinel', 'sentinel_get_master_addr_by_name', 'sentinel_masters', 'sentinel_sentinels', 'sentinel_slaves', 'set', 'set_response_callback', 'setbit', 'setex', 'setnx', 'setrange', 'shutdown', 'sinter', 'sinterstore', 'sismember', 'slaveof', 'smembers', 'smove', 'sort', 'spop', 'srandmember', 'srem', 'sscan', 'strlen', 'substr', 'sunion', 'sunionstore', 'time', 'transaction', 'ttl', 'type', 'unwatch', 'watch', 'zadd', 'zcard', 'zcount', 'zincrby', 'zinterstore', 'zrange', 'zrangebyscore', 'zrank', 'zrem', 'zremrangebyrank', 'zremrangebyscore', 'zrevrange', 'zrevrangebyscore', 'zrevrank', 'zscan', 'zscore', 'zunionstore']
这只是一个简单的测试,为了测试redis是否正常工作,我们安装是否正确;

⑷ 怎样设计python脚本实现redis的set命令

#!/usr/bin/python
#coding=utf-8
import redis
class CRedis:
def __init__(self):
self.host = 'localhost'
self.port = 6379
self.db = 0
self.r = redis.Redis(host = self.host, port = self.port, db = self.db)
#1. strings 类型及操作
#设置 key 对应的值为 string 类型的 value
def set(self, key, value):
return self.r.set(key, value)
#设置 key 对应的值为 string 类型的 value。如果 key 已经存在,返回 0,nx 是 not exist 的意思
def setnx(self, key, value):
return self.r.setnx(key, value)
#设置 key 对应的值为 string 类型的 value,并指定此键值对应的有效期
def setex(self, key, time, value):
return self.r.setex(key, time, value)
#设置指定 key 的 value 值的子字符串
#setrange name 8 gmail.com
#其中的 8 是指从下标为 8(包含 8)的字符开始替换
def setrange(self, key, num, value):
return self.r.setrange(key, num, value)
#获取指定 key 的 value 值的子字符串
def getrange(self, key, start ,end):
return self.r.getrange(key, start, end)
#mget(list)
def get(self, key):
if isinstance(key, list):
return self.r.mget(key)
else:
return self.r.get(key)
#删除
def remove(self, key):
return self.r.delete(key)
#自增
def incr(self, key, default = 1):
if (1 == default):
return self.r.incr(key)
else:
return self.r.incr(key, default)
#自减
def decr(self, key, default = 1):
if (1 == default):
return self.r.decr(key)
else:
return self.r.decr(key, default)
#2. hashes 类型及操作
#根据email获取session信息
def hget(self, email):
return self.r.hget('session', email)
#以email作为唯一标识,增加用户session
def hset(self, email, content):
return self.r.hset('session', email, content)
#获取session哈希表中的所有数据
def hgetall(self):
return self.r.hgetall('session')
#删除hashes
def hdel(self, name, key = None):
if(key):
return self.r.hdel(name, key)
return self.r.hdel(name)
#清空当前db
def clear(self):
return self.r.flushdb()
#3、lists 类型及操作
#适合做邮件队列
#在 key 对应 list 的头部添加字符串元素
def lpush(self, key ,value):
return self.r.lpush(key, value)
#从 list 的尾部删除元素,并返回删除元素
def lpop(self, key):
return self.r.plush(key)
if __name__ == '__main__':
r = CRedis()

⑸ 如何在linux上为Python语言安装Redis客户端

(1)下载好之后,使用命令进行解压

(2)使用命令python ez_setup.py进行运行:

(3)使用命令python -m easy_install redis hiredis 来安装redis包以及hireredis包:

由上图可看出在安装过程中出问题了,最终找到原因才是因为Linux上的Python版本(2.7)太低!!!所以我们接下来升级Python的版本:

a)首先还是在Python的官网上下载安装包,下面给出下载的地址:

https://www.python.org/downloads/source/

我选择的版本是Python-3.1.2版本,其他的版本也是可以,但至少要比2.7版本要高:

b)解压安装包:

d)在/usr/local下创建目录python3,用于安装python的路径,以免覆盖老的版本:

e)开始编译安装:
./configure --prefix = /usr/local/python3

make && make install

f)编译安装完成之后,此时没有覆盖原来的版本,再将原来/usr/bin/python链接改为别的名字:

mv /usr/bin/python /usr/bin/python_old

g)再建立新版本python的链接:

ln -s
/usr/local/python3/bin/python3
/usr/bin/python

至此python的安装已经完成!!!!

PS:如果不建立新安装路径python3,而是直接默认安装,则安装后的新python应该会覆盖linux下自带的老版本,也有可能不覆盖,具体看安装过程了,这个大家可以自己试验下,当然如果还想保留原来的版本,那么这种方法最好不过了。

以上则就是python的新版本!!!!

然后再使用刚开始的命令:

(4)

(5)

至此我们已经完成了在Linux上为Python语言安装Redis客户端!!!!接下来我们进行验证:

(6)首先开启redis服务:

(7)查看服务器开启端口:

(8)开启redis客户端连接服务器:

(9)下面我们使用python来测试redis,首先启动python:

(10)导入redis客户端:

(11)创建redis连接,并设置一个值,然后通过获取返回值来判断设置操作是否执行成功

⑹ python 用redis做什么功能

redis-py提供两个类Redis和StrictRedis用于实现Redis的命令,StrictRedis用于实现大部分官方的命令,
并使用官方的语法和命令,Redis是StrictRedis的子类,用于向后兼容旧版本的redis-py。
import redis 导入redis模块,通过python操作redis 也可以直接在redis主机的服务端操作缓存数据库
r = redis.Redis(host='192.168.19.130', port=6379) host是redis主机,需要redis服务端和客户端都起着 redis默认端口是6379
r.set('foo', 'Bar') key是"foo" value是"bar" 将键值对存入redis缓存
print r.get('foo') Bar 取出键foo对应的值!

热点内容
手机号序列码的密码在哪里 发布:2025-02-02 03:29:34 浏览:873
安卓怎么换回鸿蒙系统 发布:2025-02-02 03:24:35 浏览:507
完美国际邻水镇箱子密码是多少 发布:2025-02-02 03:17:04 浏览:618
测试java程序 发布:2025-02-02 03:16:49 浏览:888
android罗升阳 发布:2025-02-02 03:15:01 浏览:822
javascript编程语言 发布:2025-02-02 03:05:49 浏览:361
用电账号初始密码多少 发布:2025-02-02 03:04:03 浏览:107
python赋值运算符 发布:2025-02-02 03:00:51 浏览:905
怎么查询电脑ip地址和dns服务器 发布:2025-02-02 02:57:50 浏览:240
数据库应用系统的概念 发布:2025-02-02 02:44:46 浏览:549