[redis数据结构] 之 string类型

本文介绍redis的string类型的命令使用方式,string类型是二进制安全的,可以存放任何数据类型,图片、对象等等都是可以的。下面将罗列与string类型相关的语法操作:

1、如何添加一个string

命令:set 添加一个string对象
语法:set [key] [value]
范例:set name wangzp 
阐述:添加了一个名为name的string对象,值为‘wangzp‘;如果之前已经存在name对象,那么将覆盖原来的对象。

2、如何获取一个string

命令:get 获取一个string对象的值
语法:get [key]
范例:get name
阐述:获取name对象的值,返回为‘wangzp‘;如果不存在该对象,那么返回空(nil)

3、setnx与set的区别

两者语法形式一致,
前者使用时只有当key不存在时,才会执行set操作;
后者不管是否已经存在该key,如果存在那么覆盖掉。
所以在实际使用时,应该根据key的应用场合,来确定使用set还是setnx,如果对key存在保护,那么建议使用setnx,以便于错误的覆盖了之前的值。

4、批量添加string

命令:mset 一次性添加多个string对象
语法:mset [key1 value1] [key2 value2] ... [keyn valuen]
范例:mset name wangzp age 23 address shanghai
阐述:一次性添加name、age、address三个string对象。

5、批量获取string

命令:mget 一次性获取多个string对象值
语法:mget [key1] [key2] ... [keyn]
范例:mget name age address
阐述:一次性获取name、age、address三个string对象的值

6、mset与msetnx的区别

两者的语法形式一致,类比于set、setnx的区别,但是需要注意的是当使用msetnx时,只要其中一个string对象 key是存在的,那么就设置失败
例如:name是存在的
msetnx  name wangzp age 23
执行上述命令,会返回0,表示执行失败

7、重新设置string

命令:getset 重新设置string对象(如果key存在,那么返回旧值,设置新值;)
语法:getset key value
范例1:getset name wangzp // 假设name之前存在值为wangzpold
阐述:返回wangzpold,并设置name为wangzp
范例2:getset name newwangzp // 假设name之前不存在
阐述:返回nil,并设置name为newwangzp
综述:根据范例1、2你会发现,实际上getset相当于执行了get 、 set操作。

8、删除string

命令:del 删除string对象
语法:del key
范例:del name
阐述: 删除name对象

9、string相关辅助命令

除上述基本的增删改查外的操作,还有一些辅助性质的命令:
1、string值的截取、添加操作

命令语法: setrange [key] [起始索引位置] [替换的字符串] // 返回新字符串的长度
范例1:setrange name 2 ok // 假设之前name=wangzp
阐述:返回6(waokzp);从指定的起始位置开始替换。

命令语法:getrange [key] [起始索引位置] [终止索引位置]
范例2:getrange name 0 3 // 假设之前name=wangzp
阐述:返回wang,起始位置与终止位置是闭区间,包括边界位置

命令语法:append [key] [value]
范例3:append name -23 // 假设之前name=wangzp
阐述:返回9(返回新字符串长度),该语法命令是在string对象末尾添加字符串。

2、string值的自增、自减操作

命令语法:incr [key] // 自增+1
范例1:incr age // 假设age=23
阐述:返回24,也就是age+1的数值;key对象的value必须是数值类型。

命令语法:incrby [key] [步长] // 指定步长执行自增
范例2:incrby age 5 // age=23
阐述:返回28,也就是age + 5,如果步长为负数,那么表示自减操作

命令语法:decr [key] // 自减-1
范例3:decr age // age=23
阐述:返回22,即age-1

命令语法:decrby [key] [步长]
范例4:decrby age 5 // age=23
阐述:返回18,即age-5,如果此时步长为负值,那么相当于是自增操作

3、获取string对象长度
命令语法:strlen [key]
时间: 2024-11-07 00:45:53

[redis数据结构] 之 string类型的相关文章

小蚂蚁学习Redis笔记(3)——Redis数据类型之string类型

昨天安装完毕,今天终于可以进入正题了. Redis中string类型的常用命令: string是最简单的类型,一个key对应一个value,string类型是二进制安全的类型,Redis的string可以包含任何数据,比如:图片或者序列化的对象. 1.    set    设置一对键值 格式:set    键    值        例如:set     name    "allen" 含义:添加一个键值对. 值得注意的是,这个命令在设置重复的key时,value是会覆盖的.它的作用是

[redis数据结构]之 list类型

redis中的list集合数据类型,是一种双向链表的结构,list存在的元素是任意的string类型.那么redis是如何管理和操作list集合数据的呢,下文将阐述redis list集合的基本语法使用: 1.添加/创建一个list对象 # 分为栈式和队列两种添加 语法1:lpush [list集合] [元素] # 栈式添加元素,将list集合看成是一个栈类型,先进后出: 范例:lpush list1 hello       lpush list1 world 阐述:遍历集合结果为:world,

[redis数据结构]之 hash类型

在讲解语法知识之前,教你如何掌握各种hash的基本潜规则,在不同的语言中,有点称之为hash.有的是map,但不管这么样,hash你可以看作是key-value一组的集合.我先将java中map的概念擅自的加入到redis的hash中,让我们更加容易的理解hash的潜规则: 一.hash潜规则 1.映射模型 值集合映射,键集合映射,Entry集合映射(key-value,有得称之为item(python)). 2.一般的方法列表 添加.删除.更新.判断键是否存在.对应映射模型的key集合.val

Redis命令学习-string类型操作

APPEND key value 如果key已经存在,并且为字符串,那么这个命令会把value追加到原来值的末尾.如果key不存在,首先创建一个空字符串,再执行追加操作. 返回值:返回APPEND后字符串的长度. EXISTS mykey 0 APPEND mykey "Hello" 5 APPEND mykey " world" 11 GET mykey Hello world SETBIT SETBIT key offset value 对key所存储的字符串值

Redis数据结构详解(一)

前言 Redis和Memcached最大的区别,Redis 除啦支持数据持久化之外,还支持更多的数据类型而不仅仅是简单key-value结构的数据记录.Redis还支持对这些数据类型做更多的服务端操作,从而也能减少网路的IO次数与数据体积,这里也比Memcached要方便与高效,只针对这一点啊,想喷的左上角群喷.上篇吹牛逼20分钟教你做memcached大神 Redis主要支持的数据类型有5种:String ,Hash ,List ,Set ,和 Sorted Set. 下面我针对Redis支持

架构师养成记--31.Redis的String类型

Redis一共分为五种基本数据类型:String.Hash.List.Set.ZSet String类型是包含很多张类型的特殊类型,并且是二进制安全的.比如对序列化的对象进行存储,比如一张图片进行二进制存储,比如一个简单的字符串数值等等. Set和get方法的使用 设置值:set name sgm (多次设置name值,后一次会覆盖前一次) 取值 get name 删除值:del name setnx,nx的意思就是not exists:不覆盖赋值,如上例,如果name存在就不设置了. sete

Redis学习笔记(三)-数据类型之string类型

string是redis最基本的类型,而且string类型是二进制安全的.意思是redis的string可以包含任何数据.比如jpg图片或者序列化的对象.从内部实现来看其实string可以看作byte数组,最大上限是1G字节.下面是string类型的定义. struct sdshdr {  long len;  long free;  char buf[]; }; buf是个char数组用于存贮实际的字符串内容.其实char和c#中的byte是等价的,都是一个字节.len是buf数组的长度,fr

使用 redis (基础, key操作, string类型操作)

使用redis set 类型: 没有重复元素 list 链表类型 有重复累型 sort set 类型 没有重复元素 1.1 存储数据 读取数据 // 数据储存在 内存中 set name laowen // OK 表示成功 set age 22    // ok 表示成功 set add beijing // OK 表示成功 get name // "laowen" 表示获取成功 get age // "22" 表示获取成功 get addr // "be

Nosql技术--redis系列--redis的数据类型 及相应的命令--String类型

1:redis的官方网站地址是:http://www.redis.com 在线redis命令运行测试地址:http://try.redis.io/ 2:redis的数据类型有5种:String .Hash .Set.List.SortedSet String 类型 1)String是二进制安全的 (1):set 表示设置key和value eg :> set name lusy ok >get name lusy 注意:redis中同一个name对应的value是一样的 (2)setnx:设置