python---redis的python使用
set以及相关:
r.set("foo","bar")
print(r.get("foo"))#b'bar'
#在Redis中设置值,默认,不存在则创建,存在则修改
#set(name, value, ex=None, px=None, nx=False, xx=False)
#ex过期时间秒,px过期时间毫秒
#默认后两个基本是无用的nx为true时,只有name不存在时,执行(添加),xx为true时,只有name存在时,执行(更新)
#setnx(name,value)和setex(name, value, time)《过期时间秒》psetex(name, time_ms, value)《过期时间毫秒》是set的子,用处不大
r.mset({"f1":"v1","f2":'v2'})设置多个值
get,getrange
相关:
r.set("name","我是在Py3保存的中文字符串")
ret = r.get("name") #显示单字节,需要转码
print(chardet.detect(ret)) #chardet.detect检测的字符串越长越准确,越短越不准确。
print(ret.decode("utf-8")) ret = r.getrange("name",,) #我
ret = r.getrange("name",,) #(一个汉字三个字节)在
print(ret,ret.decode("utf-8"))
setrange(name, offset, value):从偏移量offset往后替换
r.set("n1","faafwgawg")
print(r.get('n1')) #b'faafwgawg'
r.setrange("n1",,"fgagwaaw")
print(r.get('n1')) #b'faafgagwaaw'
位操作setbit, getbit, bitcount, bitop
r.set('s1','') #setbit(name, offset, value)
print(ord(r.get('s1')),bin(ord(r.get('s1')))) #
print(r.getbit('s1',)) #-7索引 获取索引为2的值(第三位)其中2,,7为1,其他位为0
r.setbit('s1',,) #将索引为1的(第二位)设为1
print(ord(r.get('s1')),bin(ord(r.get('s1')))) #
print(r.get('s1')) #bitcount(key, start=None, end=None)
print(r.bitcount('s1',,))#4个1
print(r.bitcount('s1',,))#4所以这个start end还是可能有点坑,尽量不要使用 r.set('s2','')#int类型存入也会转义为string类型49
print(r.get('s2'),bin(ord(r.get('s2'))))#获取的类型是bytes需要进行转换操作 #bitop(operation, dest, *keys) operation有与,或,非,异或 *key代表可以操作多个键值
r.bitop('and','s3','s1','s2') #s1:q s2:''
print(r.get('s3'),bin(ord(r.get('s3'))))#s3:''
strlen(name),返回值得字节长度,对于汉字默认3位
incr(self, name, amount=1), incrbyfloat(self, name, amount=1.0)
decr(self, name, amount=1)其中值必须是数字
append(name,val)向字符后面添加,setrange可以设置范围
r.set('name','你好')
print(r.strlen('name')) # utf- 汉字3字节 英文1字节
r.set('name','你好a')
print(r.strlen('name')) # r.set('num',)
print(r.get('num'))
r.incr('num') # 默认加一,可以自己设置步长
print(r.get('num'))
r.incr('num',) # 默认加一,可以自己设置步长
print(r.get('num'))
r.decr('num',)
print(r.get('num')) #
r.incrbyfloat('num','2.3')
print(r.get('num')) #'96.299999999999997' float操作也出现坑,少入 #append(key, value)
r.append('num','fas')
print(r.get('num')) #b'96.299999999999997fas'
其他操作:
删除单个键值:
delete(name)
r.delete('num')
判断每个键是否存在
exists(name)
r.exists('num')
单个键值的过期时间设置:
expire(name ,time)
r.expire('num',)#10秒过期
rename(src, dst) 重命名某个键
move(name, db)) 将name的值移到db下
randomkey() 随机获取一个键
type(name) 判断name值类型
scan(cursor=0, match=None, count=None)
scan_iter(match=None, count=None)
迭代获取值
Hash ----> h开头函数, 主要用于字典
r.hset('d2','key1','val1')
print(r.hget('d2','key1'))
List ----> l开头函数, 主要用于列表
r.lpush('ls1',,,)
r.lpush('ls1',)
print(r.lpop('ls1'),r.lpop('ls1'),r.lpop('ls1')) #弹出一个9,, 默认右到左 #r.lset(name, index, value) 对索引处重新赋值
r.lset('ls1',,)
print(r.lpop('ls1')) #lindex(name, index)获取索引处值,不必弹出
列表循环获取值:
r.lpush('ls2',,,)
print( r.llen('ls2')) #方法一,range(列表长度)
for i in range(r.llen('ls2')):
print(r.lindex('ls2',i)) #方法二,生成器
def list_iter(name):
"""
自定义redis列表增量迭代
:param name: redis中的name,即:迭代name对应的列表
:return: yield 返回 列表元素
"""
list_count = r.llen(name)
for index in range(list_count):
yield r.lindex(name, index) for item in list_iter('ls2'):
print(item)
Set ----> s开头函数, 主要用于集合(Set集合就是不允许重复的列表)
sadd(name,values)添加值
scard(name)获取值
其他更多操作Hash,Set,List可以查看:
http://www.cnblogs.com/wupeiqi/articles/5132791.html
https://www.cnblogs.com/melonjiang/p/5342505.html
python---redis的python使用的更多相关文章
- Redis的Python实践,以及四中常用应用场景详解——学习董伟明老师的《Python Web开发实践》
首先,简单介绍:Redis是一个基于内存的键值对存储系统,常用作数据库.缓存和消息代理. 支持:字符串,字典,列表,集合,有序集合,位图(bitmaps),地理位置,HyperLogLog等多种数据结 ...
- Redis的Python客户端redis-py的初步使用
1. Redis的安装 sudo pip install redis sudo pip install hiredis Parser可以控制如何解析redis响应的内容.redis-py包含两个Par ...
- python+redis测试环境搭建
针对windows操作系统. redis安装: 微软操作系统下,需下载github下面的开源项目,redis网站地址可以找到,直接解压即可. cmd到指定目录,输入下方命令,启动redis服务. re ...
- python redis模块的常见的几个类 Redis 、StricRedis和ConnectionPool
日常写代码过程中,经常需要连接redis进行操作.下面我就介绍下python操作redis模块redis中的几个常见类,包括redis连接池. 一.StrictRedis 类 请看代码:. #!/us ...
- Python Redis 的安装
安装 可以去pypi上找到redis的Python模块: http://pypi.python.org/pypi?%3Aaction=search&term=redis&submit= ...
- redis与python交互
import redis #连接 r=redis.StrictRedis(host="localhost",port=6379,password="sunck" ...
- LinuxMint上安装redis和python遇到的一些问题
今天在安装Redis和Python上遇到了些问题,解决后记录下来. 环境:LinuxMint 18.3 安装redis sudo wget http://download.redis.io/relea ...
- Redis在python中的使用
一 简介 redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(sorted ...
- Python redis 简单介绍
Python redis 简单介绍 1.安装 终端输入: pip(or)pip3.6 install redis 安装成功 2.哈哈,发现我并没有redis服务可以访问,所以到这里,在本机安装了red ...
- Redis的Python客户端redis-py说明文档(转)
add by zhj: 对Publish / Subscribe,LUA Scripting,Sentinel support,Scan Iterators等部分没有翻译,需要的用户参见英文原文吧.另 ...
随机推荐
- C#中byte[] 与string相互转化问题
using System; using System.IO; using System.Security.Cryptography; namespace ShareX.UploadersLib.Oth ...
- Jmeter常见问题及场景应用
Jmeter作为工具来讲,已经是一个相对比较牛掰的工具,除了它能够支持那么多协议以及方法之外,更在与它的前置处理以及后置处理.同步监控的人性化.当然,所有的工具.框架都是作为业务的支撑,如果不能满足我 ...
- java中的equals和==
下面是我看别人博客和java API总结的 首先得明确一个概念就是: == 的用法 ==比较对象在内存中的地址是否相等.如是是两个基本数据类型变量的比较则比较的是这两个变量值是否相等,若是比较两个 ...
- CentOS7 卸载mariadb 安装mysql的过程:
1. 检查安装的mariadb rpm -qa |grep mariadb 得到已经安装的安装包 mariadb-libs-5.5.56-2.el7.x86_64mariadb-devel-5.5.5 ...
- Oracle 的ORION工具简单使用
1. 下载地址: http://www.oracle.com/technetwork/cn/topics/index-088165-zhs.html 2. linux x64 还有 windows的 ...
- 小程序的wx.onAccelerometerChange
https://www.2cto.com/kf/201802/724174.html(copy) 也许有人会问,小程序中都是竖直app形态,要横竖屏判断有什么用?即使判断出了横屏状态,你能把小程序横过 ...
- “一战通offer”互联网实习季编程挑战
1.字符串变形 对于一个给定的字符串,我们需要在线性(也就是O(n))的时间里对它做一些变形.首先这个字符串中包含着一些空格,就像"Hello World"一样,然后我们要做的是把 ...
- XHTML 簡介
XTML是可擴展的超文本標記語言. XHTML是比HTML更加嚴謹的HTML語言. 所有的瀏覽器都能識別XHTML. XHTML符合W3C標準,是為了替代HTML的.
- selenium之批量执行测试用例
把写好的测试用例放在指定目录下,使用discover函数扫描该目录,并根据关键字自动筛选需要执行的用例.本例使用Python3.6版本. # 遍历指定目录,批量执行测试用例 import unitte ...
- sorted 返回字典的所有键