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的更多相关文章

  1. python学习之-- redis模块操作 集合和有序集合

    redis 模块操作之 集合set和有序集合zset Set 集合操作,不允许重复的列表sadd(name,value):name对应的集合中添加元素scard(name):获取name对应的集合中元 ...

  2. python学习之-- redis模块操作 LIST

    redis 模块操作之 List List 操作,在内存中按照一个name对应一个List来存储. lpush(name,values):在name对应的list中添加元素,每个新的元素都添加到列表的 ...

  3. python学习之-- redis模块操作 HASH

    redis 操作 之 -Hash Hash 操作:hash在内存中的存储格式 name hash n1 ------> k1 -> v1 k2 -> v2 k3 -> v3hs ...

  4. python学习之-- redis模块管道/订阅发布

    redis 模块操作剩余其他常用操作 delete(*names):删除任意的数据类型exists(name):检测redis的name是否存在keys(pattern='*'):根据模型获取redi ...

  5. python学习之-- redis模块基本介绍

    数据缓存系统: 1:mongodb:是直接持久化,直接存储于硬盘的缓存系统 2:redis: 半持久化,存储于内存和硬盘 3:memcache:数据只能存储在内存里的缓存系统关于memcache 学习 ...

  6. Python学习 Part4:模块

    Python学习 Part4:模块 1. 模块是将定义保存在一个文件中的方法,然后在脚本中或解释器的交互实例中使用.模块中的定义可以被导入到其他模块或者main模块. 模块就是一个包含Python定义 ...

  7. python学习之argparse模块

    python学习之argparse模块 一.简介: argparse是python用于解析命令行参数和选项的标准模块,用于代替已经过时的optparse模块.argparse模块的作用是用于解析命令行 ...

  8. Python学习day18-常用模块之NumPy

    figure:last-child { margin-bottom: 0.5rem; } #write ol, #write ul { position: relative; } img { max- ...

  9. Python学习day19-常用模块之re模块

    figure:last-child { margin-bottom: 0.5rem; } #write ol, #write ul { position: relative; } img { max- ...

随机推荐

  1. ios https 安全证书配置

    原定于2017年1月1日起所有提交到 App Store 的App必须强制开启 ATS,需要配置Https.但是现在不需要了,无固定期限的往后延期了,但是这个还是得弄明白下为好,说不定哪天突然就让弄了 ...

  2. LINUX 安装tsung 对OPENFIRE 进行压力测试

    参考资料:  http://www.centoscn.com/image-text/install/2014/0818/3503.html  http://my.oschina.net/jieluck ...

  3. 3.12 在运算和比较时使用NULL值

    问题:NULL值永远不会等于或不等于任何值,也包括NULL值自己,但是需要像计算真实值一样计算可为空列的返回值.例如,需要在表emp中查出所有比“WARD”提成(COMM)低的员工,提成为NULL(空 ...

  4. df - 报告文件系统磁盘空间的使用情况

    总览 df [OPTION]... [FILE]... POSIX 选项: [-kP] GNU 选项 (最短方式): [-ahHiklmPv] [-t fstype] [-x fstype] [--b ...

  5. easyui实现增删改查

    陈旧的开发模式 美工(ui工程师:出一个项目模型) java工程师:将原有的html转成jsp,动态展示数据 缺点: 客户需要调节前端的展示效果 解决:由美工去重新排版,重新选色. 前后端分离: 前端 ...

  6. 打开或关闭CD_ROM

    实现效果: 知识运用: API函数 mciSendString //函数用来向媒体控制接口设备发送命令  声明如下 [DllImport("winmm.dll",EntryPoin ...

  7. AndroidStudio连不上天天模拟器

    问题:天天模拟器经常无法被Android Studio读取出来: 解决方法:手动连接它的端口: 方法一:找到Android\SDK\platform-tools目录,在当前目录下打开命令行窗口(shi ...

  8. python调用aapt工具直接获取包名和tagertSdkversion

    背景: 每次海外游戏上架都需要符合google的上架规则,其中适配方面tagetSdkversion有硬性要求,比如需要适配安卓q就需要tagetSdkversion达到28,水平太渣的我每次调用aa ...

  9. pc端移动端兼容的大图轮播

    body, html { width: 100%; } * { margin:; padding:; list-style: none; } .haha { list-style-type: none ...

  10. Hibernate-03

    目的:表操作(表维护) 一.一对一(略过) 二.一对 1.建表原则:在多的一方创建外键指向一的一方的外键 2.建表:实体中添加 商品实体表: private Set<User> user ...