redis的python客户端redis-py初识

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介:  转载请注明出处哈:http://carlosfu.iteye.com/blog/2240426    声明: 我是java程序员,对python不是很熟悉,只是写书的需要,要了解一下redis的python客户端,欢迎拍砖。


 转载请注明出处哈:http://carlosfu.iteye.com/blog/2240426


 
 声明:
我是java程序员,对python不是很熟悉,只是写书的需要,要了解一下redis的python客户端,欢迎拍砖。

    

 一、redis的python客户端

   去redis的官网看了一下http://redis.io/clients#python,python的客户端如下:

 

  所以按照经验,已经相关的文章推荐,我选取redis-py作为实验目标。

  redis-py的官网是:https://github.com/andymccurdy/redis-py

   

 二、python环境升级

 

   简单了解了一下,redis-py需要python的版本为2.7,linux服务器上自带的是2.6.6或者更低的版本,所以这里要涉及到了版本升级问题(2.6.6->2.7)

   搜索了一下,找到这篇文章:Centos 6.4 python 2.6 升级到 2.7 

   查看python的版本

   

#python -V
Python 2.6.6

 

1.下载Python-2.7.3
wget http://python.org/ftp/python/2.7.3/Python-2.7.3.tar.bz2
 
2.解压 
tar -jxvf Python-2.7.3.tar.bz2
 
3.更改工作目录 
cd Python-2.7.3
 
4.安装
./configure
make all
make install
make clean
make distclean
 
5.查看版本信息
/usr/local/bin/python2.7 -V
 
6.建立软连接,使系统默认的 python指向 python2.7
mv /usr/bin/python /usr/bin/python2.6.6
ln -s /usr/local/bin/python2.7 /usr/bin/python

7.重新检验Python 版本
python -V
 
8.解决系统 Python 软链接指向 Python2.7 版本后,因为yum是不兼容 Python 2.7的,所以yum不能正常工作,我们需要指定 yum 的Python版本
#vi /usr/bin/yum

将文件头部的
#!/usr/bin/python

改成
#!/usr/bin/python2.6.6
 

 三、PIP安装

  1. 前言

   python要想使用redis需要一个模块来连接redis,这个可以理解,就像java的redis的客户端jedis一样。
   这个模块的安装命令是什么呢?搜索+官网看都给出了三种方式:
   1,2种:应该是通过软件包来安装,pip和easy_install应该是类似于linux的yum那样能安装python需要的插件和相关功能。好处:简单。缺点:redis-py版本可能不是最新的。(猜测)
   3种:从源代码安装,好处:redis-py的版本可控,缺点:稍微麻烦一些。
   To install redis-py, simply:
pip install redis

  or alternatively (you really should be using pip though):

easy_install redis

  or from source:

 python setup.py install

 

   我们这里使用pip进行安装:
   在 pip的python官网上我们可以看到,pip 是“ A tool for installing and managing Python packages.”,也就是说pip是python的软件安装工具。

 

 2. 安装:

(a) pip需要setuptools:
 (1)下载setuptools包
 wget "http://pypi.python.org/packages/source/s/setuptools/setuptools-2.0.tar.gz" --no-check-certificate
 (2)解压setuptools包
 tar zxvf setuptools-2.0.tar.gz
 cd setuptools-2.0
 (3)编译setuptools
  python setup.py build
 (4)开始执行setuptools安装
 # python setup.py install
 
 
(b) 安装pip
(1) wget "https://pypi.python.org/packages/source/p/pip/pip-1.4.1.tar.gz" --no-check-certificate 
(2) tar -xvf pip-1.4.1.tar.gz  
(3) cd pip-1.4.1/  
(4) python setup.py install  
 

 四、安装redis-py

pip install redis
 

 五、使用redis-py操作redis

1. 单机模式

import redis
client = redis.StrictRedis(host='127.0.0.1', port=6379)
key = "hello"
client.set(key, "python-redis")
value = client.get(key)
print "key:" + key + ", value:" + value
 
打印:
key:hello, value:python-redis
 

2. sentinel模式

官网:
>>> from redis.sentinel import Sentinel
>>> sentinel = Sentinel([('localhost', 26379)], socket_timeout=0.1)
>>> sentinel.discover_master('mymaster')
('127.0.0.1', 6379)
>>> sentinel.discover_slaves('mymaster')
[('127.0.0.1', 6380)]
>>> master = sentinel.master_for('mymaster', socket_timeout=0.1)
>>> slave = sentinel.slave_for('mymaster', socket_timeout=0.1)
>>> master.set('foo', 'bar')
>>> slave.get('foo')
'bar'
 

 3. cluster模式

(1) redis-py并没有提供redis-cluster的支持,去github找了一下,有个叫redis-py-cluster的源码,但是和redis-py不是一个作者,地址为: https://github.com/Grokzen/redis-py-cluster
     watch,star,fork还算可以。
    
(2) 安装
   Latest stable release from pypi
$ pip install redis-py-cluster

    or from source

$ python setup.py install
 (3) 使用
>>> from rediscluster import StrictRedisCluster

>>> startup_nodes = [{"host": "127.0.0.1", "port": "7000"}]

>>> # Note: decode_responses must be set to True when used with python3
>>> rc = StrictRedisCluster(startup_nodes=startup_nodes, decode_responses=True)

>>> rc.set("foo", "bar")
True
>>> print(rc.get("foo"))
'bar'
 

   

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
2月前
|
NoSQL Redis 数据安全/隐私保护
Redis 最流行的图形化界面下载及使用超详细教程(带安装包)! redis windows客户端下载
文章提供了Redis最流行的图形化界面工具Another Redis Desktop Manager的下载及使用教程,包括如何下载、解压、连接Redis服务器以及使用控制台和查看数据类型详细信息。
158 6
Redis 最流行的图形化界面下载及使用超详细教程(带安装包)! redis windows客户端下载
|
2月前
|
NoSQL Redis 数据库
Redis 图形化界面下载及使用超详细教程(带安装包)! redis windows下客户端下载
文章提供了Redis图形化界面工具的下载及使用教程,包括如何连接本地Redis服务器、操作键值对、查看日志和使用命令行等功能。
155 0
Redis 图形化界面下载及使用超详细教程(带安装包)! redis windows下客户端下载
|
4月前
|
缓存 NoSQL Redis
【Azure Redis 缓存】Redission客户端连接Azure:客户端出现 Unable to send PING command over channel
【Azure Redis 缓存】Redission客户端连接Azure:客户端出现 Unable to send PING command over channel
196 3
|
4月前
|
NoSQL Unix 网络安全
【Azure Cache for Redis】Python Django-Redis连接Azure Redis服务遇上(104, 'Connection reset by peer')
【Azure Cache for Redis】Python Django-Redis连接Azure Redis服务遇上(104, 'Connection reset by peer')
【Azure Cache for Redis】Python Django-Redis连接Azure Redis服务遇上(104, 'Connection reset by peer')
|
2月前
|
Python
Socket学习笔记(二):python通过socket实现客户端到服务器端的图片传输
使用Python的socket库实现客户端到服务器端的图片传输,包括客户端和服务器端的代码实现,以及传输结果的展示。
152 3
Socket学习笔记(二):python通过socket实现客户端到服务器端的图片传输
|
2月前
|
JSON 数据格式 Python
Socket学习笔记(一):python通过socket实现客户端到服务器端的文件传输
本文介绍了如何使用Python的socket模块实现客户端到服务器端的文件传输,包括客户端发送文件信息和内容,服务器端接收并保存文件的完整过程。
168 1
Socket学习笔记(一):python通过socket实现客户端到服务器端的文件传输
|
2月前
|
NoSQL 网络协议 算法
Redis 客户端连接
10月更文挑战第21天
34 1
|
2月前
|
存储 消息中间件 NoSQL
Redis 入门 - C#.NET Core客户端库六种选择
Redis 入门 - C#.NET Core客户端库六种选择
66 8
|
3月前
|
JSON NoSQL Java
redis的java客户端的使用(Jedis、SpringDataRedis、SpringBoot整合redis、redisTemplate序列化及stringRedisTemplate序列化)
这篇文章介绍了在Java中使用Redis客户端的几种方法,包括Jedis、SpringDataRedis和SpringBoot整合Redis的操作。文章详细解释了Jedis的基本使用步骤,Jedis连接池的创建和使用,以及在SpringBoot项目中如何配置和使用RedisTemplate和StringRedisTemplate。此外,还探讨了RedisTemplate序列化的两种实践方案,包括默认的JDK序列化和自定义的JSON序列化,以及StringRedisTemplate的使用,它要求键和值都必须是String类型。
redis的java客户端的使用(Jedis、SpringDataRedis、SpringBoot整合redis、redisTemplate序列化及stringRedisTemplate序列化)
|
3月前
|
关系型数据库 MySQL Python
mysql之python客户端封装类
mysql之python客户端封装类