#! /usr/bin/env python
#coding=utf-8
import redis
print redis.__file__
# 连接,可选不同数据库
r = redis.Redis(host='10.0.1.7', port=6379, db=1)
# -------------------------------------------
# 看信息
info = r.info()
for key in info:
print "%s: %s" % (key, info[key])
# 查数据库大小
print '\ndbsize: %s' % r.dbsize()
# 看连接
print "ping %s" % r.ping()
# 选数据库
#r.select(2)
# 移动数据去2数据库
#r.move('a',2)
# 其他
#r.save('a') # 存数据
#r.lastsave('a') # 取最后一次save时间
#r.flush() #刷新
#r.shutdown() #关闭所有客户端,停掉所有服务,退出服务器
#
#--------------------------------------------
# 它有四种类型: string(key,value)、list(序列)、set(集合)、zset(有序集合,多了一个顺序属性)
# 不知道你用的哪种类型?
# print r.get_type('a') #可以告诉你
# -------------------------------------------
# string操作
print '-'*20
# 塞数据
r['c1'] = 'bar'
#或者
r.set('c2','bar')
#这里有个 getset属性,如果为True 可以在存新数据时将上次存储内容同时搞出来
print 'getset:',r.getset('c2','jj')
#如果你想设置一个递增的整数 每执行一次它自加1:
print 'incr:',r.incr('a')
#如果你想设置一个递减的整数 please:
print 'decr:',r.decr('a')
# 取数据
print 'r['']:',r['c1']
#或者
print 'get:',r.get('a')
#或者 同时取一批
print 'mget:',r.mget('c1','c2')
#或者 同时取一批 它们的名字(key)很像 而恰好你又不想输全部
print 'keys:',r.keys('c*')
#又或者 你只想随机取一个:
print 'randomkey:',r.randomkey()
# 查看一个数据有没有 有 1 无0
print 'existes:',r.exists('a')
# 删数据 1是删除成功 0和None是没这个东西
print 'delete:',r.delete('cc')
# 哦对了 它是支持批量操作的
print 'delete:',r.delete('c1','c2')
# 其他
r.rename('a','c3') #呃.改名
r.expire('c3',10) #让数据10秒后过期 说实话我不太明白么意思
r.ttl('c3') #看剩余过期时间 不存在返回-1
#--------------------------------
# 序列(list)操作
print '-'*20
# 它是两头通的
# 塞入
r.push('b','gg')
r.push('b','hh')
# head 属性控制是不是从另一头塞
r.push('b','ee',head=True)
# 看长度
print 'list len:',r.llen('b')
# 列出一批出来
print 'list lrange:',r.lrange('b',start=0,end=-1)
# 取出一位
print 'list index 0:',r.lindex('b',0)
# 修剪列表
#若start 大于end,则将这个list清空
print 'list ltrim :',r.ltrim('b',start=0,end=3) #只留 从0到3四位
# 排序
# 这可是个大工程
#--------------------------------
# 集合(set)操作
# 塞数据
r.sadd('s', 'a')
# 判断一个set长度为多少 不存在为0
r.scard('s')
# 判断set中一个对象是否存在
r.sismember('s','a')
# 求交集
r.sadd('s2','a')
r.sinter('s1','s2')
#求交集并将结果赋值
r.sinterstore('s3','s1','s2')
# 看一个set对象
r.smembers('s3')
# 求并集
r.sunion('s1','s2')
# 阿 我想聪明的你已经猜到了
#求并集 并将结果返回
r.sunionstore('ss','s1','s2','s3')
# 求不同
# 在s1中有,但在s2和s3中都没有的数
r.sdiff('s1','s2','s3')
r.sdiffstore('s4','s1','s2')# 这个你懂的
# 取个随机数
r.srandmember('s1')
#-------------------------------------
#zset 有序set
#'zadd', 'zcard', 'zincr', 'zrange', 'zrangebyscore', 'zrem', 'zscore'
# 分别对应
#添加, 数量, 自加1,取数据,按照积分(范围)取数据,删除,取积分
# 我靠 你玩死我了 redis!
# 今天在实验中,我尝试插入一条zset类型数据:
r1.zset(u'www.liyi99.com','liwu',3)
# 插入成功
# 我继续插入
r1.zset(u'www.liyi99,com',u'\u9001\u793c',5)
#报错:
#UnicodeDecodeError: 'ascii' codec can't decode byte 0xe4 in position 0: ordinal not in range(128)
#这次插入的是礼物的中文词 unicode编码
#为什么会失败那,这条数据是我从redis里面取出来然后没做任何修改再插入的阿
#redis返回和接受的数据类型都是unicode编码的阿
#好吧,我们再次插入试试
#再次插入
r1.zset('www.liyi99.com',u'\u9001\u793c',5)
#成功了
#插入
r1.zset('www.liyi99.com','礼物',5)
#依然成功,跟入redis.py 1024行
return self.send_command('ZADD %s %s %s\r\n%s\r\n' % (
key, score, len(member), member))
# 哦 万恶的编码转换!
#不过取的时候,不论第一个是何种类型的数据都无关系
文章出处:飞诺网(www.diybl.com):http://www.diybl.com/course/3_program/python/20110510/555370.html
分享到:
相关推荐
### Redis Python 客户端:Redis 键值存储的 Python 接口 Redis 是一个高性能的键值存储系统,广泛应用于缓存、消息队列、实时分析等场景。在 Python 中,可以通过多个客户端库与 Redis 进行交互,其中最流行的是 `...
在Windows环境下安装Redis并使用Python进行操作,是...总的来说,Windows环境下安装Redis并使用Python操作它并不复杂,只需遵循上述步骤即可。通过熟练掌握这些基础操作,你可以构建出高效、灵活的数据存储和处理系统。
本教程将详细介绍如何使用Python的`redis-py`库封装一个名为`RedisHelper`的类,以便更方便地操作Redis。 首先,我们需要安装`redis-py`库。通过Python的包管理器pip,可以轻松完成安装: ```bash pip install ...
在这个小示例中,我们将探讨如何使用Python操作Redis,包括数据的读取、写入、推送以及删除等基本操作。 首先,确保已经安装了`redis-py`库,如果没有,可以通过以下命令安装: ```bash pip install redis ``` 接...
Python 的 Redis 数据库连接与使用是指通过 Python 语言对 Redis 数据库进行连接和操作的过程。Redis 是一个基于内存的 key-value 存储系统,可以存储多种数据类型,包括字符串、链表、集合、有序集合和哈希类型等。...
redislite 是一个 Redis 的 Python 模块,用于在 Python 代码中对 Redis 数据进行操作。示例代码:>>> from redislite import Redis >>> redis_connection = Redis('/tmp/redis.db') >>> redis_connection...
当我们提到`python_redis_orm`时,这是一个专门针对Redis数据库的ORM库,旨在为Python开发者提供一种方便的方式来管理和操作Redis数据存储。 `python_redis_orm`库是基于Python的,版本号为0.4.0,适用于Python 3...
在给定的文件`redis.py`中,可能包含了具体的实现细节,如如何用Python操作Redis和MySQL的函数或类。这个文件可能定义了连接数据库的函数、数据上传下载的函数,甚至可能有处理异常和关闭连接的逻辑。 总结来说,...
有时候我们需要批量修改redis里面的一些缓存数据,但是由于本地无法直接访问线上redis...现在下载的python的redis库都是wheel什么的包,无法直接import。 这个库是我自己抽出来的,已经用过多次了,一直没什么问题。
描述中提到了"redis python驱动下载",这表明包内可能包含用于Python编程语言的Redis客户端库,方便开发者通过Python连接和操作Redis服务器。"redis服务器客户端"则可能指的是其他语言的Redis客户端库或者命令行工具...
由于Python的标准库中并不包含直接操作Redis的模块,因此我们需要安装额外的第三方库来实现这一功能。这个场景下,我们讨论的是如何在Python中导入并使用`redis`库,这通常通过`pip`来安装。首先,让我们来了解一下...
3. **链式操作**:Python-hotredis 提供了链式调用的 API 设计,使得多个 Redis 操作可以连续执行而无需显式地在每个操作后调用连接的 `.execute()` 方法。这种设计使得代码更加简洁且易于阅读。 4. **方便的异步...
在Python编程环境中,Redis作为一个高效的数据存储和缓存系统,常被用于处理大量数据,提供高速的数据读写操作。要使用Redis与Python进行交互,我们需要利用`redis`这个Python库。这个库使得我们可以方便地通过...
下面我们将深入探讨如何在Python中导入`redis`包以及使用它的基本操作。 首先,为了在Python中使用`redis`包,你需要确保已经安装了这个库。如果没有,可以使用`pip`来安装: ```bash pip install redis ``` 安装...
Python中常用的Redis库是`redis-py`,它提供了一套完整的API来操作Redis。在编写分布式爬虫时,你需要理解如何使用这些API,例如`lpush`和`rpop`操作列表,`sadd`和`srem`操作集合,以及`hset`和`hget`操作哈希表。 ...
Python操作Redis的方法主要涵盖连接Redis、管理连接池以及对Redis中的数据类型进行各种操作。本文将详细介绍这些内容,特别是字符串(Strings)的操作。 首先,连接Redis是操作的基础。Python通过`redis`库来与Redis...
python操作redis笔记,: 1. NoSQL简介 2. Redis简介 3. Redis安装 4. Redis数据类型 5. Redis持久化
Tencentcloud-sdk-python-redis则是腾讯云针对Redis服务提供的Python接口,它使得开发者能够方便地在Python环境中与腾讯云Redis实例进行交互,实现数据的读写、管理以及监控等操作。 首先,我们需要了解如何安装这...
你可以学习如何配置Redis,以及使用Python的redis库与Redis服务器进行交互,包括设置键值、操作列表、集合等数据结构。 在实际的爬虫项目中,可能会遇到反爬策略,例如IP限制、User-Agent限制等。在本课程的第四...
本篇将详细介绍如何使用Python来实现Zabbix对Redis的监控。 首先,我们需要理解Zabbix的基本工作原理。Zabbix由两大部分组成:Server和Agent。Server负责收集数据和展示监控结果,Agent则部署在被监控的主机上,...