iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >Redis数据操作--字符串
  • 581
分享到

Redis数据操作--字符串

2024-04-02 19:04:59 581人浏览 八月长安
摘要

| 储存文字,储存数字(整数,浮点数),二进制数 |  字符串操作 -- 设置字符串     set key&nbs

| 储存文字,储存数字(整数,浮点数),二进制数
|  字符串操作
-- 设置字符串
    set key value
    # 如果字符串键key已经存在,
    那么使用新值覆盖原来的旧值
-- 获取字符串
    get key
    # 返回字符串键key储存的值
-- 仅在键不存在的情况下进行设置
    setnx key value
    # 仅在键key不存在的情况下,将键key的值设置为value,
    效果和set key value NX一样。NX的意思为"Not exists"。
    # 键不存在并且设置成功时命名返回1;
    因为键已经存在而导致设置失败时,命令返回0。
-- 同时设置或获取多个字符键的值
    mset key value...(key value)
    mget key value...(key value)
    # 多个get,set同时执行一样
-- 一次设置多个不存在的键
    msetnx key value [key value...]
    # 只有在所有给定键都不存在的情况下,给所有给定键设置值,
    效果和同时执行多个setnx一样。如果给定的键至少有一个是
    存在的,那么msetnx将不执行任何设置操作。
-- 设置新值并返回旧值
    getset key new-value
    # 将字符串键的值设置为new-value,并返回字符串键在设置新值
    之前储存的旧值(old value)。
-- 追加内容到字符串末尾
    append key value
    # 将值value推入到字符串键key已储存内容的末尾
-- 返回值得长度
    strlen key
    # 返回字符串键key储存的值的长度
| 键的命名
    # 因为Redis的数据不能同时出现两个同名的键,所以
    我们通常会使用field1::field2::field3这样的格式来区分
    同一类型的多个字符串键。最好统一使用符号。
    如:网站用户对应的邮件地址: huangz::email键,peter::email
    键来区分。
    (也可以选用自己喜欢的其他分隔符)
| 字符串索引(正,负)
-- 范围设置
    setrange key index value
    # 从索引index开始,用value复写(overwrite)给定值key
    所储存的字符串值。只接受正数索引。
    命令返回复写之后,字符串的长度
-- 范围取值
    getrange key start end
    # 返回键key储存的字符串值中,位于start和end两个索引
    之间的内容(闭区间),范围取值的索引可以是正数或者负数。
| 设置和获取数字
    # 只要储存在字符串键里面的值可以被解释为64位整数,或者IEEE-754
    的64位浮点数,那么用户就可以对这个字符串键执行对数字值的命令。
    # 10086 可以被解释为整数;3.14可以被解释为浮点数;+123可以被解释
    为整数;1234....(很多) 值太大,没办法使用64位整数来储存;2.0e7这样
    的科学计数法无法被Redis解释;123ABC包含文字,不可以被解释;
-- 增加或者减少数字的值(整数)
    # 对于一个保存着数字的字符串键key,我们可以使用incrby,decrby命令
    来增加或者减少它的值
    incrby key increment 将key储存的值加上增量,返回key的值
    decrby key increment 将key储存的值减去减量,返回key的值
    # 如果执行过程中key不存在,name命令会线将键key初始化为0,
    然后再执行增加或者减少操作
-- 增一和减一(整数)
    incr key 等同于incrby key 1
    decr key 等同于decrby key 1
    # 因为针对数字值得增一和减一操作非常常见,所以Redis特别创建了这
    两个值得命令
    (计数器api的实现)
    counter.py文件:Counter(name, redis_client), Counter.incr(), Counter.get()
    , Count.reset
    (id生成器API的实现)
    id_generator.py文件:IdGenerator(name, redis_client), IdGenerator.gen()
    IdGenerator.int()
-- 浮点数的自增和自减
    # 为字符串键key储存的值加上浮点数增量increment,返回key值
    附:没有响应的decrbyfloat,但可以通过给定负值来达到decrbyfloat
    的效果。
    redis>set num 10
    redis>incrbyfloat num 3.14
    redis>incrbyfloat num -2.04
    注意事项:即使字符串键储存的是数字值,它也可以执行append、strlen、
    setrange的命令,Redis会先将数字值转换成字符串,然后再执行命令
| 二进制数据操作
-- 设置和获取二进制数据
    # set,get,setnx,append等命令设置二进制数据
    # 因为Redis自带的客户端redis_cli没办法方便的设置二进制数据
    # 所以这里使用python客户端来进行
    >> import redis
    >> r = redis.Redis()
    >>r.set('bits', 0b10010100)  # 将字符串键bits的值设置为二进制10010100
    >>True
    >> bin(int(r.get('bits')))  # 获取字符串键bits储存的二进制值(需要进行转换)
    >>'0b10010100'
    >> r.append('bits', 0b111)  # 将0b111(也即是十进制的7)推入到bits已有
    二进制位的末尾
    >>4
    >> bin(int(r.get('bits')))  # 推入之前的值为0b10010100 =148
    '0b10111001111'         # 推入之后的值为0b1011100111 = 1487
-- 二进制位的索引
    # 和储存文字时的索引不同,当字符串键储存的是二进制位时,二进制的索引
    会从左到右依次递减。
-- 设置二进制位的值
    setbit key index value
    # 将给定索引上的二进制位的值设置为value,
    命令返回被设置的位原来储存的旧值
    redis> setbit bits 2 1
    (integer) 0
-- 获取二进制位的值
    getbit key index
    # 返回给定索引上的二进制位的值
-- 计算值为1的二进制位的数量
    bitcount key [start][end]
    # 计算并返回字符串键储存的值中,被设置为1的二进制位的数量
    start和end参数的设置,来限制一个范围,可以使用负数值。
-- 二进制位的运算
    bitop operation desTKEy key [key ...]
    # 对一个或多个保存二进制位的字符串键执行位元操作
    ,并将结果保存到destkey上。
    operation可以是AND,OR,NOT,XOR
    ADN: 对一个或多个key求逻辑并
    OR: 对一个或者多个key求逻辑或
    XOR: 对一个或多个key求逻辑异或  
    # 逻辑运算法则:a^b=(a' and b) or (a and b')
    NOT: 对给定key求逻辑非
    # 命令的返回值为计算结果的字节长度
    b:01001101  b2:10110101
    redis> bitop and b1-and-b2  # 00000101
    (integer) 1
    redis> bitop or b1-or-b2 b2  # 11111101
    (integer) 1
    redis> bitop xor b1-xor-b2 b1 b2  # 11111000
    (intefer) 1
    redis> bitop not noy-b1 b1  # 10110010
    (integer) 1
    # 实现在线人数统计 online_count.py
    # 使用Redis缓存热门图片
    cache= Cache(redis_client)  # 设置缓存的客户端
    file = open('reids-loGo.jpg', 'r')  # 打开文件
    data = file.read()                       # 读取文件数据
    file.close()                                 # 关闭文件
    cache.put('redis-logo', data)   # 以redis-logo为名字,将图片缓存起来
    cache.get('redis-logo')            # 取出redis-logo图片的数据
| 储存中文时的注意事项
-- strlen,setrange,getrange不适用于中文
# 一个英文字符只需要使用单个字节来储存,而一个中文
    字符却需要使用多个字节来储存。
# strlen,setrange,getrange都是为英文设置的,它们只会
    在字符为单个字节的情况下正常工作,而一旦我们储存的
    是类似中文这样多字节字符,那这三个命令就不再适用了。
-- strlen示例
    $ redis-cli --raw  # 在redis-cli中使用中文时,必须打开--raw
    选项,才能正常显示中文
    redis> set msq '世界你好'
    OK
    redis> get msg
    redis> strlen msg  # 这里strlen显示了'世界你好'的字节长度为12字节
    12                           # 但我们真正想知道的是msg键里面包含多少个字符
--setrange和getrange示例
    setrange和getrange的情况也是类似的:因为这两个命令所使用的索引
    是根据字节而不是字符来编排的,所以调用setrange或者getrange来
    处理中文,得不到我们想要的结果。
--结论
    # 不要使用strlen、setrange和getrange来处理中文。
    # 例外情况:如果你想知道被储存的中文包含多少个字节,那么可以使用
    strlen。
您可能感兴趣的文档:

--结束END--

本文标题: Redis数据操作--字符串

本文链接: https://www.lsjlt.com/news/45126.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Redis数据操作--字符串
    | 储存文字,储存数字(整数,浮点数),二进制数 |  字符串操作 -- 设置字符串     set key&nbs...
    99+
    2022-10-18
  • Redis字符串类型的操作
    set key value [ex 秒数] / [px 毫秒数] [nx] /[xx] 如: set a 1 ex 10 , 10秒有效Set a 1 px 9000 , 9秒有效注: 如果ex,p...
    99+
    2022-10-18
  • 数字、字符串操作
    bin()十进制转二进制; oct()十进制转二进制; hex()十进制转二进制;   字符串: 索引: 查找: 移除空白: 长度: 替换:   切片: 分割: 连接: 首字母大写; 居中、...
    99+
    2023-01-30
    字符串 操作 数字
  • Redis数据操作--字符串与散列键的区别
    | 如果散列键能做的事情,字符串键也能做,那么 我们为什么不直接使用字符串键呢? | 散列的好处 -- 将数据放在同一个地方     #...
    99+
    2022-10-18
  • 字符串操作
    # 1.capitalize(cap ita lize)# 功能:字符串首字母大写 # Ex1: # name = 'max' # print(name.capitalize()) # 回车:...
    99+
    2023-01-31
    字符串 操作
  • python字符串操作
    目录一、字符串方法1.字符串的分割2.字符串的查找,替换3.字符串的判断二、切片操作(列表,元组也可以)1.索引2.切片有三个参数[start:end :step]一、字符串方法 1...
    99+
    2022-11-12
  • python3 字符串操作
          name = "My \tname is  {name} and my age is {year} old"#大写 print(name.capitalize()) # 首字母大写 打印显示 My  name is  {na...
    99+
    2023-01-31
    字符串 操作
  • python3-字符串操作
    name = "my \tname is {name}, age is {age}." '''print(name.capitalize()) #这段话的首字母大写 print(name.count("a"))...
    99+
    2023-01-31
    字符串 操作
  • python3 字符串操作
    字符串操作: 1、 下载python官方手册 2、 先定义一个字符串变量 A = ‘abc’ A.两次TAB键 help(A.选项) #查看帮助 'ABC'.lower() #XXX...
    99+
    2023-01-31
    字符串 操作
  • python3字符串操作
    python3字符串操作 1 x = 'abc' 2 y = 'defgh' 3 4 print(x + y) #x+y 5 print(x * 3) #x*n 6 print(x[2]) ...
    99+
    2023-01-31
    字符串 操作
  • 压缩Redis里的字符串大对象操作
    背景 Redis缓存的字符串过大时会有问题。不超过10KB最好,最大不能超过1MB。 有几个配置缓存,上千个flink任务调用,每个任务5分钟命中一次,大小在5KB到6MB不等,因此...
    99+
    2022-11-12
  • Python 字符串操作之字符串的截取
    字符串的截取 字符串的截取是实际应用中经常使用的技术,被截取的部分称为“子串”。Java中使用函数substr()获取子串,C#使用函数substring()获取子串。而Python由于内置了序列,可以通过前面介绍的索引...
    99+
    2023-09-11
    python c# 开发语言
  • 【转载】Python字符串操作之字符串分
    1、 str.split():字符串分割函数   通过指定分隔符对字符串进行切片,并返回分割后的字符串列表。   语法:   str.split(s, num)[n]   参数说明:   s:表示指定的分隔符,不写的话,默认是空格(’ ‘...
    99+
    2023-01-30
    字符串 操作 Python
  • Redis在PHP应用中的字符串操作详解
    Redis在PHP应用中的字符串操作详解Redis是一个高性能的NoSQL数据库,被广泛应用于Web开发中,特别是在PHP应用中。通过Redis,PHP应用可以轻松地实现字符串、列表、集合、有序集合等数据结构的操作。本文将重点介绍Redis...
    99+
    2023-05-15
    PHP redis 字符串操作
  • Python数字或字符串的补零操作
    这篇文章主要讲解了“Python数字或字符串的补零操作”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python数字或字符串的补零操作”吧!有时候在使用 Python 的时候,想要对一个数字...
    99+
    2023-06-20
  • Python字符串操作之如何提取子字符串
    在 Python 中,字符串是一种非常常见的数据类型,经常需要对字符串进行各种操作,其中提取子字符串是一个非常常见的需求。本文将介绍几种在 Python 中提取子字符串的方法。 方法一:使用字符串切片 在 Python 中,可以使用字符串切...
    99+
    2023-10-18
    python 正则表达式 开发语言
  • Redis字符串类型
        字符串类型是Redis中最基本的数据类型,它能存储任何形式的字符串,包括二进制数据。可以用其存储用户的邮箱、JSON化的对象甚至是一张图片。一个字符串类型键允许存储的数据的最大容量是512MB。字符...
    99+
    2022-10-18
  • 【Kotlin】字符串操作 ① ( 截取字符串函数 substring | 拆分字符串函数 split | 解构语法特性 )
    文章目录 一、截取字符串函数 substring二、拆分字符串函数 split 一、截取字符串函数 substring Kotlin 中提供了 截取字符串函数 substring , 可接收 IntRange 类型...
    99+
    2023-08-19
    kotlin android 字符串
  • Javascript中字符串和数字的操作示例
    小编给大家分享一下Javascript中字符串和数字的操作示例,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!1、length – 返回字符串的长度‘abcd'.length;&nb...
    99+
    2022-10-19
  • MySQL 字符串截取操作
    一:MySQL 字符串截取相关函数 首先来看一下 MySQL 中跟字符串截取相关的函数有: left(), right(), substring(), substring_index()、 mid()...
    99+
    2023-09-21
    mysql 字符串截取 substr substring_index
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作