python安装与使用redis的方法
admin
2023-08-02 15:31:56
0

本文实例讲述了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函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

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

相关内容

热门资讯

500 行 Python 代码... 语法分析器描述了一个句子的语法结构,用来帮助其他的应用进行推理。自然语言引入了很多意外的歧义,以我们...
定时清理删除C:\Progra... C:\Program Files (x86)下面很多scoped_dir开头的文件夹 写个批处理 定...
65536是2的几次方 计算2... 65536是2的16次方:65536=2⁶ 65536是256的2次方:65536=256 6553...
Mobi、epub格式电子书如... 在wps里全局设置里有一个文件关联,打开,勾选电子书文件选项就可以了。
scoped_dir32_70... 一台虚拟机C盘总是莫名奇妙的空间用完,导致很多软件没法再运行。经过仔细检查发现是C:\Program...
小程序支付时提示:appid和... [Q]小程序支付时提示:appid和mch_id不匹配 [A]小程序和微信支付没有进行关联,访问“小...
pycparser 是一个用... `pycparser` 是一个用 Python 编写的 C 语言解析器。它可以用来解析 C 代码并构...
微信小程序使用slider实现... 众所周知哈,微信小程序里面的音频播放是没有进度条的,但最近有个项目呢,客户要求音频要有进度条控制,所...
python查找阿姆斯特朗数 题目解释 如果一个n位正整数等于其各位数字的n次方之和,则称该数为阿姆斯特朗数。 例如1^3 + 5...
Apache Doris 2.... 亲爱的社区小伙伴们,我们很高兴地向大家宣布,Apache Doris 2.0.0 版本已于...