python安装与使用redis的方法


Posted in Python onApril 19, 2016

本文实例讲述了python安装与使用redis的方法。分享给大家供大家参考,具体如下:

1、安装

好吧,我承认我只会最简单的安装:

sudo apt-get install redis-server

python 支持包: (其实就一个文件,搞过来就能用)

sudo apt-get install python-redis

2、配置

配置一下吧,默认配置文件在: "/etc/redis/redis.conf"
绑定ip:

"bind 127.0.0.1″ -> "bind 10.0.1.7″

将磁盘同步改为 不同步或每秒同步,一直同步的话太慢了:

"appendfsync always" -> "appendfsync no"

检查一下后台执行是否打开:

"daemonize yes"

或者其他你想设置的,例如:

连接超时时间 : "timeout 300″

运行级别: "loglevel notice" (个人认为默认的这个就挺好,非出现大异常,不用改为debug )

3、使用

#! /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))
# 哦 万恶的编码转换!
#不过取的时候,不论第一个是何种类型的数据都无关系

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
python3之微信文章爬虫实例讲解
Jul 12 Python
python和ruby,我选谁?
Sep 13 Python
利用Python如何生成hash值示例详解
Dec 20 Python
python图像处理入门(一)
Apr 04 Python
Python-Seaborn热图绘制的实现方法
Jul 15 Python
Python绘制热力图示例
Sep 27 Python
TensorFlow2.0矩阵与向量的加减乘实例
Feb 07 Python
torchxrayvision包安装过程(附pytorch1.6cpu版安装)
Aug 26 Python
Anaconda+spyder+pycharm的pytorch配置详解(GPU)
Oct 18 Python
Python入门学习之类的相关知识总结
May 25 Python
ROS系统将python包编译为可执行文件的简单步骤
Jul 25 Python
Python用any()函数检查字符串中的字母以及如何使用all()函数
Apr 14 Python
Python实现文件复制删除
Apr 19 #Python
利用Python获取赶集网招聘信息前篇
Apr 18 #Python
Python Sql数据库增删改查操作简单封装
Apr 18 #Python
python使用paramiko实现远程拷贝文件的方法
Apr 18 #Python
python UNIX_TIMESTAMP时间处理方法分析
Apr 18 #Python
python动态加载包的方法小结
Apr 18 #Python
python实现按行切分文本文件的方法
Apr 18 #Python
You might like
网络资源
2006/10/09 PHP
AJAX for PHP简单表数据查询实例
2007/01/02 PHP
php smarty模版引擎中变量操作符及使用方法
2009/12/11 PHP
Zend的MVC机制使用分析(一)
2013/05/02 PHP
解析php session_set_save_handler 函数的用法(mysql)
2013/06/29 PHP
php模板原理讲解
2013/11/13 PHP
PHP JSON出错:Cannot use object of type stdClass as array解决方法
2014/08/16 PHP
postfixadmin忘记密码后的修改密码方法详解
2016/07/20 PHP
Yii2框架自定义验证规则操作示例
2019/02/08 PHP
Yii框架使用PHPExcel导出Excel文件的方法分析【改进版】
2019/07/24 PHP
在UpdatePanel内jquery easyui效果失效的解决方法
2010/04/11 Javascript
我的Node.js学习之路(四)--单元测试
2014/07/06 Javascript
详解Angular.js指令中scope类型的几种特殊情况
2017/02/21 Javascript
jquery如何实现点击空白处隐藏元素
2017/12/05 jQuery
微信小程序使用video组件播放视频功能示例【附源码下载】
2017/12/08 Javascript
Vue.js 表单控件操作小结
2018/03/29 Javascript
Vue.js组件高级特性实例详解
2018/12/24 Javascript
vue项目中实现的微信分享功能示例
2019/01/21 Javascript
细说Vue组件的服务器端渲染的过程
2019/05/30 Javascript
[03:11]DOTA2上海特锦赛小组赛第一日recap精彩回顾
2016/02/28 DOTA
详细解读Python中解析XML数据的方法
2015/10/15 Python
对python中的xlsxwriter库简单分析
2018/05/04 Python
解决python ogr shp字段写入中文乱码的问题
2018/12/31 Python
Python数据类型之List列表实例详解
2019/05/08 Python
PHP统计代码行数的小代码
2019/09/19 Python
Python大数据之网络爬虫的post请求、get请求区别实例分析
2019/11/16 Python
Python 用turtle实现用正方形画圆的例子
2019/11/21 Python
使用Puppeteer爬取微信文章的实现
2020/02/11 Python
基于python实现计算两组数据P值
2020/07/10 Python
css3实现小箭头各种图形效果
2020/07/08 HTML / CSS
施华洛世奇日本官网:SWAROVSKI日本
2018/05/04 全球购物
拆迁委托协议书
2014/09/15 职场文书
博士生专家推荐信
2014/09/26 职场文书
2015年小学远程教育工作总结
2015/07/28 职场文书
Python实现学生管理系统并生成exe可执行文件详解流程
2022/01/22 Python
OpenCV实现常见的四种图像几何变换
2022/04/01 Python