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. Spring的Log4J配置器Log4jWebConfigurer介绍

    1. Logj4简介 Log4j是Apache大旗下的一个子项目,它可以用来重定向应用日志文件的输出流,无论我们想将日志文件输出到控制台还是网络还是其他地方,都可以通过logj4来配置,如果我们的应用 ...

  2. 全局解释器锁GIL

    我们使用高并发,一次是创建1万个线程去修改一个数并打印结果看现象: from threading import Thread import os def func(args): global n n ...

  3. cf 1114E

    为什么这道题我到现在才写题解... 题解: 因为是随机题吗,,好像对于我来说还是很新颖的,就写一下. rand()的范围是到32768?这个以前踩过坑 #include <bits/stdc++ ...

  4. 性能测试yslow

    YSlow YSlow可以对网站的页面进行分析,并告诉你为了提高网站性能,如何基于某些规则而进行优化. YSlow可以分析任何网站,并为每一个规则产生一个整体报告,如果页面可以进行优化,则YSlow会 ...

  5. prometheus + grafana安装部署(centos6.8)

    官方网址:https://prometheus.io/ GitHub网址:https://github.com/prometheus/prometheus 软件下载地址:https://prometh ...

  6. PHP7.1安装xdebug

    一.前言1. Xdebug 简介Xdebug 是一个开放源代码的 PHP 程序调试器(即一个Debug工具),可以用来跟踪,调试和分析PHP程序的运行状况.当前最新版本为 Xdebug 2.5.0. ...

  7. pandas读取文件报错

    path = 'D:/Postgraduate/Python/Machine Learning/小象学院机器学习/08.回归实践/8.Regression代码/8.Regression/8.Adver ...

  8. HTML5 - Canvas【申明:来源于网络】

    HTML5 - Canvas 地址:http://hwaphon.site/

  9. javascript call apply

    call 和 apply 都是为了改变某个函数运行时的 context 即上下文而存在的,换句话说,就是为了改变函数体内部 this 的指向.因为 JavaScript 的函数存在「定义时上下文」和「 ...

  10. 基础SQL注入

    预备知识对mysql数据库有一定了解:对基本的sql语句有所了解:对url编码有了解:空格=‘%20’,单引号=‘%27’,双引号=‘%22’,井号=‘%23’等 基本步骤1. 判断是什么类型注入,有 ...