redis对string进行的相关操作
redis对string类型操作的相关命令以及如何在python使用这些命令
redis对string类型操作的命令:
| 命令 | 语法 | 概述 | 返回值 |
| Redis SET 命令 | set key value | 设置指定 key 的值 | SET 在设置操作成功完成时,才返回 OK |
| Redis Get 命令 | get key | 获取指定 key 的值。 |
返回 key 的值,如果 key 不存在时,返回 nil。 如果 key 不是字符串类型,那么返回一个错误。 |
| Redis Getrange 命令 | getrange key start end | 返回 key 中字符串值的子字符 | 截取得到的子字符串 |
| Redis Getset 命令 | getset key value | 将给定 key 的值设为 value ,并返回 key 的旧值(old value)。 |
返回给定 key 的旧值。 当 key 没有旧值时,即 key 不存在时,返回 nil 。 |
| Redis Getbit 命令 | getbit key offset | 对 key 所储存的字符串值,获取指定偏移量上的位(bit)。 |
字符串值指定偏移量上的位(bit)。 |
| Redis Mget 命令 | mget key [key ...] | 获取所有(一个或多个)给定 key 的值。 | 返回 一个包含所有给定 key 的值的列表。 |
| Redis Setbit 命令 | setbit key offset value | 对 key 所储存的字符串值,设置或清除指定偏移量上的位(bit)。 | 指定偏移量原来储存的位。 |
| Redis Setex 命令 | setex key seconds value | 将值 value 关联到 key ,并将 key 的过期时间设为 seconds (以秒为单位)。 | 设置成功时返回 OK |
| Redis Setnx 命令 | setnx key value | 只有在 key 不存在时设置 key 的值。 | 设置成功,返回 1 。 设置失败,返回 0 |
| Redis Setrange 命令 | setrange key offset value | 用 value 参数覆写给定 key 所储存的字符串值,从偏移量 offset 开始。 | 被修改后的字符串长度。 |
| Redis Strlen 命令 | strlen key | 返回 key 所储存的字符串值的长度。 | 字符串值的长度。 当 key 不存在时,返回 0 |
| Redis Mset 命令 | mset key value [key value ...] | 同时设置一个或多个 key-value 对。 | 设置成功返回ok |
| Redis Msetnx 命令 | msetnx key value [key value ...] | 同时设置一个或多个 key-value 对,当且仅当所有给定 key 都不存在。 | 当所有 key 都成功设置,返回 1 。 如果所有给定 key 都设置失败(至少有一个 key 已经存在),那么返回 0 |
| Redis Psetex 命令 | psetex key milliseconds value | 这个命令和 SETEX 命令相似,但它以毫秒为单位设置 key 的生存时间,而不是像 SETEX 命令那样,以秒为单位。 | 设置成功时返回 OK |
| Redis Incr 命令 | incr key | 将 key 中储存的数字值增一 | 当key的值数字时返回执行 INCR 命令之后 key 的值。key的值不为数字返回错误 |
| Redis Incrby 命令 | incrby key increment | 将 key 所储存的值加上给定的增量值(increment) |
加上指定的增量值之后, key 的值。如果key不存在,key的值初始化为0在加上增量 |
| Redis Incrbyfloat 命令 | incrbyfloat key increment | 将 key 所储存的值加上给定的浮点增量值(increment | 执行命令之后 key 的值。如果key不存在,key的值初始化为0在加上增量 |
| Redis Decr 命令 | decr key | 将 key 中储存的数字值减一。 | 当key的值数字时返回执行 INCR 命令之后 key 的值。key的值不为数字返回错误 |
| Redis Decrby 命令 | decrby key decrement | key 所储存的值减去给定的减量值(decrement) | 减去指定减量值之后, key 的值。如果key不存在,key的值初始化为0在减上减量 |
| Redis Append 命令 | append key value | 如果 key 已经存在并且是一个字符串, APPEND 命令将指定的 value 追加到该 key 原来值(value)的末尾。 | 追加指定值之后, key 中字符串的长度。如果 key 不存在, APPEND 就简单地将给定 key 设为 value 。 |
在python中对redis string进行的相关操作
# -*- coding: utf-8 -*-
import redis
# 连接本地redis
r = redis.Redis(host="127.0.0.1",port=6379)
1.SET 命令用于设置给定 key 的值。如果 key 已经存储其他值, SET 就覆写旧值,且无视类型。
print(r.set('123','123')) # 插入成功后返回True
print(r.set('123','[123,dffd]')) # 插入成功后返回True
2. Get 命令用于获取指定 key 的值。如果 key 不存在,返回 None 。如果key 储存的值不是字符串类型,返回一个错误。
print(r.get('123')) # 返回的结果是[123,dffd]
print(r.get('1234')) # 返回的结果是 None
3. Getrange 命令用于获取存储在指定 key 中字符串的子字符串。字符串的截取范围由 start 和 end 两个偏移量决定(包括 start 和 end 在内)。
print(r.set('getrange','wo shi hao ren '))
print(r.getrange('getrange',2,4)) # 返回的结果是sh
print(r.getrange('getrange',2,6)) # 返回的结果是shi
print(r.getrange('getrange',2,10)) # 返回的结果是shi hao
4.Getset 命令用于设置指定 key 的值,并返回 key 旧的值,当 key 存在但不是字符串类型时,返回一个错误。
print(r.getset('getrange','hello word')) # 返回的结果是wo shi hao ren
print(r.getset('getrange11','hello word')) # 当键不存在的时候,返回的结果是None
5.Getbit 命令用于对 key 所储存的字符串值,获取指定偏移量上的位(bit)字符串值指定偏移量上的位(bit)。当偏移量 getrange 比字符串值的长度大,或者 key 不存在时,返回 0。
print(r.get('getrange')) # 返回的结果是 hello word
print(r.getbit('getrange',1)) # 返回的结果是 1
print(r.getbit('getrange',3)) # 返回的结果是 0
print(r.getbit('getr22222ange',3)) # 字符串的键不存在的时候返回的结果是 0
print(r.getbit('getrange',300)) # 偏移量超过字符串长度,返回的结果是 0
6.Mget 命令返回所有(一个或多个)给定 key 的值。 如果给定的 key 里面,有某个 key 不存在,那么这个 key 返回特殊值 None
print(r.set('1','1')) # 返回的结果是 True
print(r.set('11','11')) # 返回的结果是 True
print(r.set('111','111')) # 返回的结果是 True
print(r.mget('1','11','111')) # 返回的结果是 ['1', '11', '111']
print(r.mget('1','11','222222')) # 因为键222222不存在,返回的结果是 ['1', '11', None]
7. Setbit 命令用于对 key 所储存的字符串值,设置或清除指定偏移量上的位(bit)。
print(r.get('getrange')) # 返回的结果是 hello word
print(r.setbit('getrange',4,10086)) # 返回的结果是 1
print(r.getbit('getrange',10086)) # 返回的结果是 0
print(r.setbit('getrange',5,100861)) # 返回的结果是 0
print(r.getbit('getrange',100861)) # 返回的结果是 0
8.Setex 命令为指定的 key 设置值及其过期时间。如果 key 已经存在, SETEX 命令将会替换旧的值。

print(r.setex('1','123',10)) # 返回的结果是 True
import time
time.sleep(5)
print(r.ttl('1')) # 返回的结果是 4
print(r.get('1')) # 返回的结果是 123
time.sleep(6)
print(r.get('1')) # 返回的结果是 None

9.Setnx(SET if Not eXists) 命令在指定的 key 不存在时,为 key 设置指定的值。设置成功,返回 1 。 设置失败,返回 0 。
print(r.exists('22')) # 返回的结果是 False
print(r.setnx('22','2222222')) # 返回的结果是 True
print(r.setnx('22','123456')) # 返回的结果是 False
print(r.get('22')) # 返回的结果是 2222222
10. Setrange 命令用指定的字符串覆盖给定 key 所储存的字符串值,覆盖的位置从偏移量 offset 开始。
print(r.set('11','hello world')) # 返回的结果是 True
print(r.setrange('11',6,"redis")) # 返回的结果是 11
print(r.get('11')) # 返回的结果是 hello redis
11. Strlen 命令用于获取指定 key 所储存的字符串值的长度。当 key 储存的不是字符串值时,返回一个错误。
print(r.get('11')) # 返回的结果是 hello redis
print(r.strlen('11')) # 返回的结果是 11
print(r.strlen('121')) # 当key不存在的时候,返回的结果是 0
12.Mset 命令用于同时设置一个或多个 key-value 对。

# 第一种方法
print (r.mset(name1="1", name2='2')) # 返回的结果是 True
# 第二种方法
print(r.mset({"name3":'3', "name4":'4'})) # 返回的结果是 True
print(r.get('name1')) # 返回的结果是 1
print(r.get('name2')) # 返回的结果是 2
print(r.get('name3')) # 返回的结果是 3
print(r.get('name4')) # 返回的结果是 4

13. Msetnx 命令用于所有给定 key 都不存在时,同时设置一个或多个 key-value 对。
当所有 key 都成功设置,返回 1 。 如果所有给定 key 都设置失败(至少有一个 key 已经存在),那么返回 0 。
print(r.msetnx(name5="5", name6='6')) # 返回的结果是 True
print(r.msetnx(name5="55", name7='7')) # 返回的结果是 False print(r.get('name5') # 返回的结果是 5
print(r.get('name6')) # 返回的结果是 6
print(r.get('name7')) # 返回的结果是 None
14. Psetex 命令以毫秒为单位设置 key 的生存时间。主意:SETEX 命令那样,以秒为单位。
print(r.psetex('name8',1000,"nihao")) # 返回的结果是 True
print(r.pttl('name8')) # 返回的结果是 690
print(r.get('name8')) # 返回的结果是 nihao 时间过期后返回的是 None
15.Incr 命令将 key 中储存的数字值增一
如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 INCR 操作。
如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。
本操作的值限制在 64 位(bit)有符号数字表示之内。

print(r.set('11',20)) # 返回的结果是 True
print(r.incr('11')) # 返回的结果是 21
print(r.get('11')) # 返回的结果是 21
print(r.incr('11',amount=2)) # 返回的结果是 23
print(r.get('11')) #返回的结果是 23
print(r.incr('21',amount=2)) # 返回的结果是 2
print(r.incr('22')) # 返回的结果是 1

16.Redis Incrby 命令将 key 中储存的数字加上指定的增量值。
如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 INCRBY 命令。
如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。
print(r.set("13",13)) # 返回的结果是 True
print(r.incrby('13',12)) # 返回的结果是 25
print(r.incrby('15',12)) # 返回的结果是 12
print(r.incrby('15',12)) # 返回的结果是 24
17.Redis Incrbyfloat 命令为 key 中所储存的值加上指定的浮点数增量值。
如果 key 不存在,那么 INCRBYFLOAT 会先将 key 的值设为 0 ,再执行加法操作。
print(r.set('1',1.1)) # 返回的结果是 True
print(r.incrbyfloat('1',2.32)) # 返回的结果是 3.42
print(r.get('1')) # 返回的结果是 3.42
print(r.incrbyfloat('1',amount=1.2)) # 返回的结果是 4.62
18.Redis Decr 命令将 key 中储存的数字值减一。
如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 DECR 操作。
如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。
本操作的值限制在 64 位(bit)有符号数字表示之内。
print(r.decr('')) # 如果 key 22 不存在,返回的结果是 -1
print(r.set('bb',20)) # 返回的结果是 True
print(r.decr('bb',amount=2)) # 返回的结果是 18
print(r.decr('cc')) # 返回的结果是 -1
19. Redis Append 命令用于为指定的 key 追加值。
如果 key 已经存在并且是一个字符串, APPEND 命令将 value 追加到 key 原来的值的末尾。 如果 key 不存在, APPEND 就简单地将给定 key 设为 value ,就像执行 SET key value 一样。
print(r.set("",12)) # 返回的结果是 True
print(r.append('',12)) # 返回的结果是 4
print(r.append('',1)) # 返回的结果是 5
print(r.append('',2)) # 返回的结果是 6
print(r.get('')) # 返回的结果是 121212
print(r.exists('')) # 返回的结果是 False
print(r.append('','hello world')) # 返回的结果是 11
print(r.get('')) # 返回的结果是 hello world
redis对string进行的相关操作的更多相关文章
- Redis字符串(STRING)中BIT相关命令
上篇文章我们对STRING数据类型中一些基本的命令进行了介绍,但是没有涉及到BIT相关的命令,本文我们就来看看几个和BIT相关的命令. 本文是Redis系列的第四篇文章,了解前面的文章有助于更好的理解 ...
- redis对sorted_set进行的相关操作
redis对sorted_set(有序集合)类型操作的相关命令以及如何在python使用这些命令 redis对sorted_set(有序集合)类型操作的命令: 命令 语法 概述 返回值 Redis Z ...
- redis对list进行的相关操作
redis对list类型进行的相关操作以及如何在python使用 redis对list类型操作的命令: 命令 语法 概述 返回值 Redis Blpop 命令 BLPOP key1 [key2 ] t ...
- redis对hash进行的相关操作
redis对hash类型操作的相关命令以及如何在python使用这些命令 redis对hash类型操作的命令: 命令 语法 概述 返回值 Redis Hdel 命令 hdel key field [f ...
- redis的String类型以及其操作
Redis的数据类型 String类型以及操作 String是最简单的数据类型,一个key对应一个Value,String类型是二进制安全的.Redis的String可以包含任何数据,比如jpg图片或 ...
- Redis中String类型的相关命令操作
String append 如果key已存在,则直接在value追加值,如果key不存在,则会插件一个新的value为空的key,然后在追加 127.0.0.1:6379> set name l ...
- redis对键进行的相关操作
redis对键操作的相关命令以及如何在python使用这些命令 redis对键操作的命令: 命令 语法 概述 返回值 Redis DEL 命令 del key [key ...] 该命令用于在 key ...
- redis对set(无序集合)的相关操作
redis对set类型(无序集合)操作的相关命令以及如何在python使用这些命令 redis对set类型操作的命令: 命令 语法 概述 返回值 Redis Sadd 命令 sadd key memb ...
- 一:redis 的string类型 - 相关操作
*redisclient使用: =============一类:string的方法================ 介绍:string是redis的最简单类型,一个key相应一个value,strin ...
随机推荐
- tensorflow Pipeline 之TextLineReader 和decode_csv多分割替代方案
1.TextLineReader reader = tf.TextLineReader() key, value = reader.read(filename_queue) record_defaul ...
- 010-3 Socket协议ProtocolType
ProtocolType成员 成员名称 说明 Ggp 网关到网关协议. Icmp Internet 控制消息协议. IcmpV6 IPv6 的 Internet 控制消息协议. Idp Interne ...
- vue根据ajax绑定数数。。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 组件或者dom的特殊属性
key:用在 Vue 的虚拟 DOM 算法,在新旧 nodes 对比时辨识 VNodes. 常用姿势: 1.结合 v-for,有相同父元素的子元素必须有唯一key. <ul> <li ...
- python 机器学习三剑客 之 Matplotlib
Matplotlib介绍: Matplotlib 是一个 Python 的 2D绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形 . 通过 Matplotlib,开发者可以仅需要几 ...
- 「luogu2387」[NOI2014] 魔法森林
「luogu2387」[NOI2014] 魔法森林 题目大意 \(n\) 个点 \(m\) 条边的无向图,每条边上有两个权值 \(a,b\),求从 \(1\) 节点到 \(n\) 节点 \(max\{ ...
- 游记-HNOI2019
Day -1 最后一场考试依旧没有ak(达成成就:\(\mathrm{OI}\) 生涯 AK 次数仅一次) Day 0 听dalao们说现在做题已经没有意义了,不如多口胡几道题,拓展视野 虽然很抗拒但 ...
- codeforces gym 101611C 重链剖分构造
给一棵树 要求在一个20*1e6的矩阵上放下这棵树,每个点的坐标都是整数且所有边都不相叉 题解 按照重链遍历,先给轻儿子坐标,然后沿着重儿子向下走即可 #include <bits/stdc++ ...
- 010_TCP queue的研究
先来回顾下三次握手里面涉及到的问题:1. 当 client 通过 connect 向 server 发出 SYN 包时,client 会维护一个 socket 等待队列,而 server 会维护一个 ...
- 禁用 urllib3 的安全请求警告
报错情况: 禁用该警告: import urllib3 urllib3.disable_warnings()