python学习之-- redis模块操作 string
redis 模块操作之--> String
String:redis中的string在内存中按照一个key 对应一个 value来存储。
使用方法如下:
set(name, value, ex=None, px=None, nx=False, xx=False) 在Redis中设置值,默认,不存在则创建,存在则修改
参数:
ex,过期时间(秒)
px,过期时间(毫秒)
nx,如果设置为True,则只有name不存在时,当前set操作才执行
xx,如果设置为True,则只有name存在时,当前set操作才执行
setnx(name,value) == set(name,value,nx=True)
setex(name,value,time) == set(name,value,ex=秒)
psetex(name,time_ms,value) == set(name,value,px=毫秒)
举例:
r.set('name','jack') # 初始值
# r.set('name','jack',ex=2) # 过期时间2秒
# r.set('name','jack',px=2) # 过期时间2毫秒
# time.sleep(3)
# r.set('name','JACK',nx=True) # 当name不存在则执行 --输出jack
# r.set('name','JACK',xx=True) # 当name存在则执行 --输出JACK
# print(r.get('name'))
mset(*args,**kwargs):批量设置值
举例:
r.mset(k1='v1',k2='v2')
print(r.mget('k1','k2'))
get(name):获取值
mget(keys,*args):批量获取。
mget('k1','k2')
getset(name,value):设置新值并获取原来的值
举例:
r.set('name','jack') # 初始值
print(r.getset('name','JACK')) # 打印初始值并设置新值
print(r.get('name')) # 打印新值
getrange(key,start,end):对key的值根据start,end进行切片
key:redis 键名
start:字串的起始位置(字节) end:字串的结束位置(字节)
举例:
r.set('name','jack') # 初始值
print(r.getrange('name',1,3))
setrange(name,offset,value):修改字符串内容,从指定字符串索引开始向后替换(新增太长时,则向后添加)
offset:字符串的索引,字节(一个汉字3个字节)
value:要设置的值
举例;
r.set('name','jack') # 初始值
r.setrange('name',1,'E')
print(r.get('name'))
setbit(name,offset,value):对name对应值的二进制表示的位进行操作
offset:位的索引(将值变换成二进制后再进行索引)
value:值只能是1或0
转换为二进制方法为:先转换为ascii编码,然后在转换为二进制码如下:
print(ord('a')) --》asc码
print(bin(97)) --》 二进制码
举例:
# 注:如果在Redis中有一个对应: n1 = "foo",
那么字符串foo的二进制表示为:01100110 01101111 01101111
所以,如果执行 setbit('n1', 7, 1),则就会将第7位设置为1,
那么最终二进制则变成 01100111 01101111 01101111,即:"goo"
getbit(name,offset):获取name对应的值的二进制表示中的某位的值
print(r.getbit('name',20)) #就是name值的二进制第20位是0还是1
bitcount(key,start=None,end=None):获取name对应的值的二进制表示中1的个数
start:可以指定起始位置,end:解释位置
print(r.bitcount('name')) # 打印二进制中1的个数
bitop(operation,dest,*keys):获取多个值,并将值做位运算,将最后的结果保存到新的name对应的值(用处少)
strlen(name):返回Name对应值的字节长度(一个汉字3个字节).
print(r.strlen('name'))
incr(name,amount=1):自增name对应的值(必须为数字),当name不存在时,则创建name=amount,否则,则自增
name: redis的name , amount:自增数(必须为整数)
r.set('age',10)
print(r.incr('age',amount=2))
incrbyfloat(name,amount=1.0):同上,浮点型自增。
decr(name,amount=1):自减name的值,当name不存在时,则创建name=amount,否则,则自减。使用同上
append(key,value):在redis name对应的值后面追加内容
key:redis的name
value:要追加的字符串
r.set('name','jack') # 初始值
r.append('name','is name') # 追加内容
print(r.get('name'))
输出:b'jackis name'
python学习之-- redis模块操作 string的更多相关文章
- python学习之-- redis模块操作 集合和有序集合
redis 模块操作之 集合set和有序集合zset Set 集合操作,不允许重复的列表sadd(name,value):name对应的集合中添加元素scard(name):获取name对应的集合中元 ...
- python学习之-- redis模块操作 LIST
redis 模块操作之 List List 操作,在内存中按照一个name对应一个List来存储. lpush(name,values):在name对应的list中添加元素,每个新的元素都添加到列表的 ...
- python学习之-- redis模块操作 HASH
redis 操作 之 -Hash Hash 操作:hash在内存中的存储格式 name hash n1 ------> k1 -> v1 k2 -> v2 k3 -> v3hs ...
- python学习之-- redis模块管道/订阅发布
redis 模块操作剩余其他常用操作 delete(*names):删除任意的数据类型exists(name):检测redis的name是否存在keys(pattern='*'):根据模型获取redi ...
- python学习之-- redis模块基本介绍
数据缓存系统: 1:mongodb:是直接持久化,直接存储于硬盘的缓存系统 2:redis: 半持久化,存储于内存和硬盘 3:memcache:数据只能存储在内存里的缓存系统关于memcache 学习 ...
- Python学习 Part4:模块
Python学习 Part4:模块 1. 模块是将定义保存在一个文件中的方法,然后在脚本中或解释器的交互实例中使用.模块中的定义可以被导入到其他模块或者main模块. 模块就是一个包含Python定义 ...
- python学习之argparse模块
python学习之argparse模块 一.简介: argparse是python用于解析命令行参数和选项的标准模块,用于代替已经过时的optparse模块.argparse模块的作用是用于解析命令行 ...
- Python学习day18-常用模块之NumPy
figure:last-child { margin-bottom: 0.5rem; } #write ol, #write ul { position: relative; } img { max- ...
- Python学习day19-常用模块之re模块
figure:last-child { margin-bottom: 0.5rem; } #write ol, #write ul { position: relative; } img { max- ...
随机推荐
- 4.03 使用NULL代替默认值
问题:在一个定义了默认值的列插入数据,并且需要不管该列的默认值是什么,都将该列值设为NULL.考虑一下下面的表: create table D (id interger default 0, foo ...
- Linux php安装zip扩展
Linux php安装zip扩展 2018.07.22 22:40 1165浏览 #wget http://pecl.php.net/get/zip-1.12.4.tgz #tar zxfv zi ...
- Python3基础教程(十八)—— 测试
编写测试检验应用程序所有不同的功能.每一个测试集中在一个关注点上验证结果是不是期望的.定期执行测试确保应用程序按预期的工作.当测试覆盖很大的时候,通过运行测试你就有自信确保修改点和新增点不会影响应用程 ...
- ideal取消按下两次shift弹出搜索框 修改idea,webstrom,phpstrom 快捷键double shift 弹出search everywhere
因为经常需要在中英文之间切换,所以时常使用shift键,一不小心就把这个Searchwhere 对话框调出来了,很是麻烦. 因此痛定思痛, 我决定将这个按两下shift键就弹出搜索框的快捷键禁用了! ...
- IIS实现HTTPS的主机名绑定
默认情况下,IIS中HTTPS 绑定是无法指定主机名的解决办法:通过手工修改 IIS 配置来实现主机头绑定.打开如下位置的文件. C:\Windows\system32\inetsrv\config\ ...
- thinkphp5 自定义验证码使用
控制器[https://blog.csdn.net/John_rush/article/details/80169702] public function verify(){ $captcha = n ...
- MongoDB中导入数据命令的使用(mongoimport)
MongoDB中导入数据命令的使用(mongoimport) 制作人:全心全意 语法: mongoimport <options> <file> 介绍: 该命令可以将CSV,T ...
- CSS---基础外部样式表
<link rel="stylesheet" type="text/css" href="style.css" media=" ...
- VS2013环境下Boost库配置
序言 最近了解各大互联网公司的校招要求,发现了解Boost程序库也是不可或缺的一部分~ 于是,决定潜心研究下,这个准标准库~ 首先,在官网下载boost的最新版本Boost 1.59.0,这是当前的最 ...
- p3386 二分图匹配模板
https://www.luogu.org/problemnew/show/P3386 可以只做一边的匹配 #include <bits/stdc++.h> using namespace ...