zoukankan      html  css  js  c++  java
  • 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'

  • 相关阅读:
    Quote comes from C. Joybell C.
    Operating System: Three Easy Pieces --- LDE (Note)
    Operating System: Three Easy Pieces --- Pthread Locks (Note)
    Operating System: Three Easy Pieces --- Locks (Note)
    Modern Operating System --- Multiple Processor Systems
    Modern Operating System --- Power Management (CPU)
    Modern Operating System --- Power Management (Hard Disk)
    ls指定日期和时间输出格式
    python StringIO
    PING命令入门详解
  • 原文地址:https://www.cnblogs.com/zy6103/p/7083948.html
Copyright © 2011-2022 走看看