redis的String类型以及其操作
Redis的数据类型
String类型以及操作
String是最简单的数据类型,一个key对应一个Value,String类型是二进制安全的。Redis的String可以包含任何数据,比如jpg图片或者序列化对象
Set
设置key对应的值为string类型的value
例如:我们添加一个name为lijie的键值对
127.0.0.1:> set name lijie
OK
127.0.0.1:> get name
"lijie"
127.0.0.1:> set name lambrother
OK
127.0.0.1:> get name
"lambrother"
我们再次设置name为lambrother,后面发现将前面的lijie覆盖了。
Setnx
设置key对应的值为string类型的value,如果key已经存在,返回0,nx是not exist的意思
例如我们添加一个name = lijie_new的键值对
127.0.0.1:> setnx name lijie_new
(integer)
127.0.0.1:> get name
"lambrother"
127.0.0.1:> setnx age
(integer)
127.0.0.1:> get age
""
Setex
设置key对应的值为string类型的value,并指定键值对的有效期
例如:我们添加一个haircolor = red的键值对,并制定有效期为10秒
127.0.0.1:> setex haircolor red
OK
127.0.0.1:> get haircolor
"red"
10秒后
127.0.0.1:> get haircolor
(nil) nil指的是空的意思。
127.0.0.1:> setnx haircolor red
(integer) //验证了前面的键值对失效了。
Setrange
设置指定key的value值的子字符串
例如:我们希望将lijie的126邮箱替换成为gmail邮箱
127.0.0.1:> set email lijie@lambrother.net
OK
127.0.0.1:> get email
"lijie@lambrother.net"
127.0.0.1:> setrange email li-jie.me //6代表的是原来字符串的开始替换位置的下标
(integer) //20 代表的是新字符串的长度
127.0.0.1:> get email
"lijie@li-jie.mer.net" //观察发现替换后的字符串如果长度没有原来字符串长,会将原来字符串的剩余依旧拼接
mset
一次设置多个key的值,成功返回ok表示所有的值都设置了,失败返回0表示没有任何值被设置
127.0.0.1:> mset key1 lijie1 key2 lijie2
OK
127.0.0.1:> get key1
"lijie1"
127.0.0.1:> get key2
"lijie2"
msetnx
一次设置多个key的值,成功返回ok表示所有的值都设置了,失败返回0表示没有任何值被设置,但是不会覆盖已经存在的key
127.0.0.1:> msetnx key3 lambrother key4 lijie@lambrother.net key2 lijie
(integer)
127.0.0.1:> get key3
(nil)
127.0.0.1:> get key4
(nil)
127.0.0.1:> msetnx key3 lambrother key4 lijie@lambrother.net key5 lijie
(integer)
127.0.0.1:> get key3
"lambrother"
127.0.0.1:> get key4
"lijie@lambrother.net"
127.0.0.1:> get key5
"lijie"
127.0.0.1:>
getset
设置key的值并返回旧的key值
127.0.0.1:> get key5
"lijie"
127.0.0.1:> getset key5 haha
"lijie"
127.0.0.1:> get key5
"haha"
127.0.0.1:>
getrange
获取子字符串
127.0.0.1:> get email
"lijie@li-jie.mer.net"
127.0.0.1:> getrange email //获取email的value的0索引到5(包括5)索引的值
"lijie@"
127.0.0.1:>
mget
批量获取
127.0.0.1:> mget key1 key2 key3 key4 key5 key
) "lijie1"
) "lijie2"
) "lambrother"
) "lijie@lambrother.net"
) "haha"
) (nil)
) (nil)
127.0.0.1:>
incr
对key的值做加加操作,并返回新的值
127.0.0.1:> set key6
OK
127.0.0.1:> get key6
""
127.0.0.1:> incr key6
(integer)
127.0.0.1:> incr key6
(integer)
127.0.0.1:> get key6
""
127.0.0.1:>
incrby
同incr类似,区别在于必须指定增量
127.0.0.1:> get key6
""
127.0.0.1:> incrby key6
(integer)
127.0.0.1:> incrby key6 -
(integer)
127.0.0.1:>
decr
对key的值做减减操作
127.0.0.1:> decr key6
(integer)
127.0.0.1:> decr key6
(integer)
decrby
与decr类似,指定减量
127.0.0.1:> decrby key6
(integer)
127.0.0.1:> decrby key6 -
(integer)
append
给指定key的字符串追加value,返回新字符串的长度
127.0.0.1:> get name
"lambrother"
127.0.0.1:> append name .net
(integer)
127.0.0.1:> get name
"lambrother.net"
strlen
取指定key的value的长度
127.0.0.1:> strlen name
(integer)
redis的String类型以及其操作的更多相关文章
- redis对string进行的相关操作
redis对string类型操作的相关命令以及如何在python使用这些命令 redis对string类型操作的命令: 命令 语法 概述 返回值 Redis SET 命令 set key value ...
- 使用Redis数据库(String类型)
一 String类型 首先使用启动服务器进程 : redis-server.exe 1. Set 设置Key对应的值为String 类型的value. 例子:向 Redis数据库中插入一条数据类型为S ...
- Redis 中 String 类型的内存开销比较大
使用 String 类型内存开销大 1.简单动态字符串 2.RedisObject 3.全局哈希表 使用 Hash 来存储 总结 参考 使用 String 类型内存开销大 如果我们有大量的数据需要来保 ...
- 一:redis 的string类型 - 相关操作
*redisclient使用: =============一类:string的方法================ 介绍:string是redis的最简单类型,一个key相应一个value,strin ...
- [redis] redis 对string类型数据操作
package com.xwolf.java.redis; import org.junit.Before; import org.junit.Test; import redis.clients.j ...
- 深入浅出Redis02 使用Redis数据库(String类型)
一 String类型 首先使用启动服务器进程 : redis-server.exe 1. Set 设置Key对应的值为String 类型的value. 例子:向 Redis数据库中插入一条数据类型为S ...
- redis的list类型以及其操作
lists类型 给你个图;' lists类型以及操作List是一个链表结构,主要功能是push.pop.获取一个范围的所有值等等,操作中key理解为链表的名字.Redis的list类型其实就是每一个子 ...
- redis的Hash类型以及其操作
hashes类型 hashes类型及操作Redis hash是一个string类型的field和value的映射表.它的添加.删除操作都是0(1)(平均).hash特别适合用于存储对象.相较于将对象的 ...
- Redis中String类型的Value最大可以容纳数据长度
项目中使用redis存储,key-value方式,在Redis中字符串类型的Value最多可以容纳的数据长度是512M 官方信息: A String value can be at max 512 M ...
随机推荐
- C++基础---结构体(struct)
转自:http://blog.csdn.net/cainv89/article/details/48447225 1. 结构体(struct) 1.1 结构体的概念 结构体(struct):是由一系列 ...
- F1Book报表在Win7下运行出现显示不完整问题
Q: Win7环境下,明明报表要显示20多行,可是显示18行,即显示不完全情况(或常常出现报表底部内容不见了,fe:最后的签名或备注消失了)?? A:只要更新Vcf132.ocx即可. 操 ...
- JAVA-JVM垃圾回收算法
哪些对象可以回收,有两种算法: 1. 引用计数算法,对象被引用计数器加1,对象被释放计数器减1.计数器为0的对象是可以被回收的. 此种方法优点:简单.缺点:会存在互相引用的两个对象,但实际这两个对象都 ...
- 为什么@EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class})
Spring Boot会自动根据jar包的依赖来自动配置项目,例如当你项目下面有HSQLDB的依赖,Spring Boot会自动创建默认的内存数据库的数据源DataSource, 但我们使用Mybat ...
- saltstack之nginx、php的配置
saltstack为nginx提供状态配置 1.创建nginx配置需要的目录 mkdir /srv/salt/prod/nginx mkdir /srv/salt/prod/nginx/files 2 ...
- PHP设计模式(六): 单例模式
- Maven 修改默认JDK版本
方式1.修改maven全局jdk 修改 安装目录\maven2\conf\settings.xml <profiles> <profile> <id>jdk-1.6 ...
- [转]常见HTTP状态(如200,304,404,503)
在网站建设的实际应用中,容易出现很多小小的失误,就像mysql当初优化不到位,影响整体网站的浏览效果一样,其实,网站的常规http状态码的表现也是一样,Google无法验证网站几种解决办法,提及到由于 ...
- centos添加php及mysql环境变量
在Linux CentOS系统上安装完php和MySQL后,为了使用方便,需要将php和mysql命令加到系统命令中,如果在没有添加到环境变量之前,执行 “php -v”命令查看当前php版本信息时时 ...
- em和px的区别一次彻底搞清楚!
在国内网站中,包括三大门户,以及“引领”中国网站设计潮流的蓝色理想,ChinaUI等都是使用了px作为字体单位.只有百度好歹做了个可调的表率.而 在大洋彼岸,几乎所有的主流站点都使用em作为字体单位, ...