String操作,redis中的String在在内存中按照一个name对应一个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)
  • # 设置值,只有name不存在时,执行设置操作(添加)
  • setex(name, value, time)
  • # 设置值
  • # 参数:
    # time,过期时间(数字秒 或 timedelta对象)
  • psetex(name, time_ms, value)
  • # 设置值
  • # 参数:
    # time_ms,过期时间(数字毫秒 或 timedelta对象)
  • mset(*args, **kwargs)
  • # 批量设置值
  • 如:
    mset(k1='v1', k2='v2')

    mget({'k1': 'v1', 'k2': 'v2'})
  • get(name)
  • # 获取值
  • mget(keys, *args)
  • # 批量获取
  • 如:
    mget('ylr', 'wupeiqi')

    r.mget(['ylr', 'wupeiqi'])
  • getset(name, value)
  • # 设置新值并获取原来的值
  • getrange(key, start, end)
  • # 获取子序列(根据字节获取,非字符)
  • # 参数:
    # name,Redis 的 name
    # start,起始位置(字节)
    # end,结束位置(字节)
    # 如: "武沛齐" ,-3表示 "武"
  • setrange(name, offset, value)
  • # 修改字符串内容,从指定字符串索引开始向后替换(新值太长时,则向后添加)
  • # 参数:
    # offset,字符串的索引,字节(一个汉字三个字节)
    # value,要设置的值
  • setbit(name, offset, value)
  • # 对name对应值的二进制表示的位进行操作
  • #使用场景:高并发访问的用户统计
    #可以设置每一个用户为一个bit 10M存上亿用户
    #
    #setbit n1 100用户 #添加100用户存1bit
    #getbit n1 100用户 #查询100用户是否存活 # 参数:
    # name,redis的name
    # offset,位的索引(将值变换成二进制后再进行索引)
    # value,值只能是 或 # 注:如果在Redis中有一个对应: n1 = "foo",
    那么字符串foo的二进制表示为:
    所以,如果执行 setbit('n1', , ),则就会将第7位设置为1,
    那么最终二进制则变成 ,即:"goo" # 扩展,转换二进制表示: # source = "武沛齐"
    source = "foo" for i in source:
    num = ord(i)
    print bin(num).replace('b','') 特别的,如果source是汉字 "武沛齐"怎么办? 答:对于utf-,每一个汉字占 个字节,那么 "武沛齐" 则有 9个字节。 对于汉字,for循环时候会按照 字节 迭代,那么在迭代时,将每一个字节转换 十进制数,然后再将十进制数转换成二进制。
 
  • getbit(name, offset)
  • # 获取name对应的值的二进制表示中的某位的值 (0或1)
  • bitcount(key, start=None, end=None)
  • # 获取name对应的值的二进制表示中 1 的个数
  • # 参数:
    # key,Redis的name
    # start,位起始位置
    # end,位结束位置
  • bitop(operation, dest, *keys)
  • # 获取多个值,并将值做位运算,将最后的结果保存至新的name对应的值
  • strlen(name)
  • # 返回name对应值的字节长度(一个汉字3个字节)
  • incr(self, name, amount=1)
  • # 自增 name对应的值,当name不存在时,则创建name=amount,否则,则自增。
  • # 参数:
    # name,Redis的name
    # amount,自增数(必须是整数) # 注:同incrby
  • incrbyfloat(self, name, amount=1.0)
  • # 自增 name对应的值,当name不存在时,则创建name=amount,否则,则自增。
  • # 参数:
    # name,Redis的name
    # amount,自增数(浮点型)
  • decr(self, name, amount=1)
  • # 自减 name对应的值,当name不存在时,则创建name=amount,否则,则自减。
  • # 参数:
    # name,Redis的name
    # amount,自增数(浮点型)
  • append(key, value)
  • # 在redis name对应的值后面追加内容
  • # 参数:
    key, redis的name
    value, 要追加的字符串

Python Redis string的更多相关文章

  1. [置顶] Redis String类型数据常用的16条命令总结

    Redis String类型数据常用的16条命令总结 描述:String 类型是最简单的类型,一个Key对应一个Value,String类型是二进制安全的.Redis的String可以包含任何数据,比 ...

  2. python的string用法

    s.strip().lstrip().rstrip(',') S.lower() #小写 S.upper() #大写 S.swapcase() #大小写互换 S.capitalize() #首字母大写 ...

  3. Python 常用string函数

    Python 常用string函数 字符串中字符大小写的变换 1. str.lower()   //小写>>> 'SkatE'.lower()'skate' 2. str.upper ...

  4. python+redis测试环境搭建

    针对windows操作系统. redis安装: 微软操作系统下,需下载github下面的开源项目,redis网站地址可以找到,直接解压即可. cmd到指定目录,输入下方命令,启动redis服务. re ...

  5. python中string模块各属性以及函数的用法

    任何语言都离不开字符,那就会涉及对字符的操作,尤其是脚本语言更是频繁,不管是生产环境还是面试考验都要面对字符串的操作.     python的字符串操作通过2部分的方法函数基本上就可以解决所有的字符串 ...

  6. Python redis 简单介绍

    Python redis 简单介绍 1.安装 终端输入: pip(or)pip3.6 install redis 安装成功 2.哈哈,发现我并没有redis服务可以访问,所以到这里,在本机安装了red ...

  7. python中string格式化

    python中可以对string, int, float等数据类型进行格式化操作.下面举例来说明一些常用操作. 先贴出 python 对 String Formatting Operations 讲解 ...

  8. C#操作Redis String字符串

    /// <summary> /// Redis String 操作 /// </summary> public static void Redis_String() { Red ...

  9. PyQt的QString和python的string的区别

    转载于http://blog.chinaunix.net/uid-200142-id-4018863.html python的string和PyQt的QString的区别 python string和 ...

随机推荐

  1. Android新特性介绍,ConstraintLayout完全解析

    今天给大家带来2017年的第一篇文章,这里先祝大家新年好. 本篇文章的主题是ConstraintLayout.其实ConstraintLayout是Android Studio 2.2中主要的新增功能 ...

  2. memcached解压报错gzip: stdin: not in gzip format tar: Child returned status 1 tar: Error is not recoverable: exiting now的解决方法

    最近在部署环境,在安装memcached的过程中解压时, 解压命令:tar -zvxf memcached-1.4.34.tar.gz 遇到了一个问题, gzip: stdin: not in gzi ...

  3. Tensorflow中神经网络的激活函数

    激励函数的目的是为了调节权重和误差. relu max(0,x) relu6 min(max(0,x),6) sigmoid 1/(1+exp(-x)) tanh ((exp(x)-exp(-x))/ ...

  4. RxJava2-后台执行耗时操作,实时通知 UI 更新(一)

    一.前言 接触RxJava2已经很久了,也看了网上的很多文章,发现基本都是在对RxJava的基本思想介绍之后,再去对各个操作符进行分析,但是看了之后感觉过了不久就忘了. 偶然的机会看到了开源项目 Rx ...

  5. ShellExecute 使用

    shellExecute 函数原型及参数含义: function ShellExecute(hWnd:HWND;Operation,FileName,Parameters,Directory:PCha ...

  6. java 三大框架 hibernate部分知识实现增删该查操作

    1.三层架构    表现层 web层(MVC是一个表现层的设计模型)    业务层 service层    持久层 dao层2.三大框架和三层架构的关系(建议学习三大框架的顺序:先学习hibernat ...

  7. MySQL的一些操作(学习记录_备忘)

    有个问题一直困扰着我,就是在windows下,使用命令行登录mymql时,得cd进mysql的\bin目录下.但我已经将mysql的\bin加入了环境变量,似乎不起作用. mysql 不允许创建表名全 ...

  8. 在IOS应用中打开另外一个应用的解决方案

    最近要在IOS中实现一个应用启动另外一个应用的功能,搜了一些资料,使用UIApplication的openURL:的方法就能实现,现在整理和大家分享一下! 注册自定义URL协议 首先被启动的应用需要向 ...

  9. 范进中Nature——儒林外史新义

    范进中Nature——儒林外史新义 范进发了文章回办公室,实验室一块儿搬砖的挂名作者俱各欢喜.正待烧锅煮方便面,只见他老板胡副教授,手里拿着一包外卖和一瓶红星二锅头,走了进来.范进向他作揖,坐下.胡副 ...

  10. JAVA第三周学习总结

    20175303 2018-2019-2 <Java程序设计>第三周学习总结 教材学习内容总结 •编程语言的发展分为三个阶段,分别是:面向机器,面向过程,面向对象的语言.Java属于面向对 ...