REDIS 字符串(STRING) 技术教程文章

Redis的数据类型 - String字符串类型

SET:设置key对应的值为value  语法:SET key value [EX seconds] [PX milliseconds] [NX|XX]  #一个键最多存储512MB,如果key存在,同名进行覆盖#    EX: seconds:设置键的key的过期时间SET key value EX seconds -- SETEX    PX: milliseconds:以毫秒的形式设置过期时间SET key value PX milliseconds -- PSETEX    NX: 只有键不存在的时候才可以设置成功SET key value NX--SETNX    XX: 只有key已经存在的时...

Redis数据操作--字符串【代码】

| 储存文字,储存数字(整数,浮点数),二进制数 | 字符串操作 -- 设置字符串 set key value # 如果字符串键key已经存在, 那么使用新值覆盖原来的旧值 -- 获取字符串 get key # 返回字符串键key储存的值 -- 仅在键不存在的情况下进行设置 setnx key value # 仅在键key不存在的情况下,将键key的值设置为value, 效果和set key value NX一样。NX的意思为"Not exists"。 # 键不存在并且设置成功时...

Redis 字符串(String)【代码】

1.SET key value 设置指定 key 的值 2.GET key 获取指定 key 的值。 3.GETRANGE key start end 返回 key 中字符串值的子字符 4.GETSET key value 将给定 key 的值设为 value ,并返回 key 的旧值(old value)。 5.GETBIT key offset 对 key 所储存的字符串值,获取指定偏移量上的位(bit)。 6.MGET key1 [key2..] 获取所有(一个或多个)给定 key 的值。 7.SETBIT key offset value 对 key 所储存的字符串值,设置或清除指定偏移量上的...

Redis学习之字符串

string是redis最基本的类型,一个key对应一个valuestring类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象。string类型是redis最基本的数据类型,一个键最大能存储512MBredis字符串常用的操作有:一、新增一个键127.0.0.1:6379> set a www.qq.com //设置一个不过期的键OK 127.0.0.1:6379> SETEX a 60 www.baidu.com //设置一个生存周期为60秒的键OK 127.0.0.1:6379> SETNX c www.qq.c...

关于redis中的字符串对象【代码】

一、SDSredis中定义Object types有5种/* Object types */ #define REDIS_STRING 0 #define REDIS_LIST 1 #define REDIS_SET 2 #define REDIS_ZSET 3 #define REDIS_HASH 4 Objects encoding有9种 #define REDIS_ENCODING_RAW 0 /* Raw representation */ #define REDIS_ENCODING_INT 1 /* Encoded as integer */ #define REDIS_ENCODING_HT 2 /* Encoded as hash table */ #define REDIS_ENCODING_ZIPMAP 3 /* Enco...

Redis 学习笔记(一) 字符串 SDS【代码】【图】

SDS 简单动态字符串。SDS的结构:struct sdshdr{ int len;//记录BUF数组中已使用字节的数量 ,等于SDS所八寸字符串的长度intfree;//记录BUF数组中未使用字节的数量char buf[];//字节数组,用于保存字符串 }1、与c语言的字符串相比,SDS获取长度时,时间复杂度位O(1),c的复杂度位O(n)。2、杜绝缓冲区溢出,c字符串若未重新分配内存,在进行字符串拼接时,会导致扩展字符串s1的数据溢出到s2所在的空间,导致s2所保存的内容被意外修改...

redis 的字符串操作【代码】

import redispool = redis.ConnectionPool() r = redis.Redis(connection_pool=pool)# 设置有效时间 r.set("gender","male",20)# 当name 不存在时,执行设置操作 r.setnx("salary",50000)# 批量设置 r.mset({‘k1‘:‘v1‘,‘k2‘:‘v2‘}) print(r.mget(["k1","k2"]))# 设置新值并获取原来的值 r.getset("salary",5000 )# 序列操作 print(r.getrange("name",0,2)) r.setrange("name",1,"666")# 计算长度 print(r.strlen("name"))#...

Redis数据类型之-- 字符串(string)

1. String 类型 介绍:String是最简单的类型,你可以理解成与Memcached是一模一样的类型,一个Key对应一个Value. 可以完全实现Memcached的功能,而且效率要比Memcached高很多,同时可以设置Redis的定时数据持久化, 操作日志的记录以及主从复制等功能. 方法:    1. set 设置Key对应的值为string类型的value 如: set name test001    2. setnx 设置key 对应的值为string类型的value。如果k...

redis中get值显示为16进制字符串的解决方法【代码】

Linux系统中,通过xshell登录redis,当根据某个key进行get取值时,取到的值为“\xc2\xed\xc0\xad\xcb\xb9\xbc\xd3”格式的十六进制字符串,原因是值中的中文以十六进制的格式输出。要解决这个问题,可以在启动Redis客户端如下加入参数:./redis-cli --raw参照官方文档:This time (integer) was omitted from the output since the CLI detected the output was no longer written to the terminal. You can force raw output even...

redis数据库中的sds.h中字符串数组的一个说明

在redis源码sds.h中对于字符串结构体的定义如下:typedef char *sds;struct sdshdr { int len; int free; char buf[];};这里刚开始没有看明白char buf[]是什么个形式,不是说C语言里数组必须要初始化大小吗?那么这里是什么东西?我们先用一个简单的方法来查在redis源码sds.h中对于字符串结构体的定义如下: typedef char *sds;struct sdshdr {int len;int free;char buf[]; }; 这里刚开始没有看明白char buf[]是什么个形式,不是说...

Redis-字符串的相关操作【代码】【图】

上篇文章中,已经介绍了Redis是什么,以及如何使用docker在服务器上安装redis,接下来看一下字符串在redis中是如何进行相关操作的。先在服务器上用命令行连接上redis服务:docker exec -it redis bash redis-cli -h 127.0.0.1 -p 6379说明:一般redis默认的端口都是6379,-h可以理解为host的缩写,-p可以理解为端口port的缩写,这样比较容易记住命令,也可以输入redis-cli --help去查看命令的可选参数的含义。 Redis中针对字符串的基...

Redis数据结构之字符串、哈希结构常用命令【图】

1、redis基本数据结构之字符串 字符串是redis中最基本的数据结构,是key-value的形式存储数据。 字符串常用基本命令如下表所示:命令 说明 备注set key value 设置键值对 最常用的写入命令。get key 通过键获取value值 最常用的读取命令。del key 通过key删除键值对 删除命令,返回删除数,需要注意的是:它是一个通用的命令,也就是说在其他数据结构中也可以使用。strlen key 求key指向的字符串的长度 返回长度getset key value 修...

redis命令之 ----String(字符串)

SET SET key value [EX seconds] [PX milliseconds] [NX|XX] 将字符串值 value 关联到 key 。 如果 key 已经持有其他值, SET 就覆写旧值,无视类型。 对于某个原本带有生存时间(TTL)的键来说, 当 SET 命令成功在这个键上执行时, 这个键原有的 TTL 将被清除。 GET GET key 返回 key 所关联的字符串值。 如果 key 不存在那么返回特殊值 nil 。 假如 key 储存的值不是字符串类型,返回一个错误,因为 GET 只能用于处理字符串值...

Redis之简单动态字符串SDS【代码】

Redis是一种非关系型数据库,以key-value的形式进行存储。而其键值都是以字符串的形式进行存储的,却并没有沿用c语言中的字符串,而是自己构建了一种数据类型SDS(Simple Dynamic String)。 我们来看看SDS的结构定义: struct sdshdr{//字节数组,用于保存字符串char[] buf;//记录了buf数组中已使用的字节数量int len;//记录了buf数组中未使用的字节数量int free; }假设我们现在要存储"redis",假设我们buf数组长度为5,那么我们的buf数组中...

day6 redis 字符串(String)

redis 字符串(String)redis 字符串数据类型的相关命令用于管理 redis 字符串值语法COMMAND KEY_NAME字符串命令表 命令描述SET key value设置指定key的值GET key获取指定key的值GETRANGE key start end返回key中字符串值的子字符GETSET key value将给定key的值设为value,并返回key的旧值GETBIT key offset对 key 所存放的字符串值,获取指定漂移量上的bit位MGET key1[,key2…]获取所有(一个或多个)给定key的值SETBIT key offse...

redis设计与实现(一)简单动态字符串【代码】【图】

redis是C语言实现的,但redis中的字符串并没有直接用C语言中的字符串表示,而是自己构建了一种简单的动态字符串类型(SDS)。 在redis里面,C字符串只用作字面量,用在一些不会修改的地方,eg:打日志。 SDS的结构:struct sdshdr{int free;int len;char buf[]; } free 属性值为0 表示这个sds未分配未使用的空间。 len 属性值为5 表示sds保存一个5字节长度的字符串。 buf 是char类型数组保存字符串的每个字节,并在字符...

redis源码阅读——动态字符串sds【代码】

redis中动态字符串sds相关的文件为:sds.h与sds.c 一、数据结构 redis中定义了自己的数据类型"sds",用于描述 char*,与一些数据结构 1 typedef char *sds;2 3 /* Note: sdshdr5 is never used, we just access the flags byte directly.4 * However is here to document the layout of type 5 SDS strings. */5 struct __attribute__ ((__packed__)) sdshdr5 {6 unsigned char flags; /* 3 lsb of type, and 5 msb of string...

08. Redis 五种数据类型-字符串String【代码】

Redis 数据类型-StringString 是Redis 中存储的最基本也是最简单的数据类型, String 可存储字符串,数字等。在生产应用中,通常会将业务对象序列化成json 串, 存储在String 中.String 这种数据结构中key 要唯一.1. 常用命令以下命令只适用于String 结构的key-value, 对其它结构使用会报错.redis 中的key 在全局应该是唯一的,不区分结构类型.操作命令 描述 返回值set $key $val [EX $seconds] [PX $milSeconds] [NX] [XX] 新增/覆盖键...

string字符串类型的操作——redis

1. string字符串类型的操作: 1.1. set 设置单个值 语法:set key value [EX seconds] [PX milliseconds] [NX|XX] 注: EX seconds 设置key的生命周期(有效期)(以秒数为单位) PX milliseconds 表示key的生命周期(有效期)(以毫秒为单位) NX (not exists)表示key不存在时设置 XX 表示key已存在时才设置 例: 127.0.0.1:6379> set name wang ex 15 OK 127.0.0.1:6379> ttl name (integer) 13 127.0.0.1:6379> ttl name (inte...

Redis 字符串(string)【代码】

Redis 操作字符串数据:127.0.0.1:6379> set name "Tom" // set 用于添加 key/value 数据,如果 key 存在则覆盖 OK 127.0.0.1:6379> get name // get 用于获取指定 key 对应的 value 值 "Tom" 127.0.0.1:6379> mset name "Tom" age 18 // mset 用于添加多个 key/value 数据 OK 127.0.0.1:6379> mget name age // mget 用于获取多个 key 对应的 value 值 1) "Tom" 2) "18"