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 ...
随机推荐
- vultr VPS安装BBR
1.安装 wget --no-check-certificate https://github.com/teddysun/across/raw/master/bbr.sh chmod +x bbr.s ...
- [日志] spring boot + logback 日志输出配置
一.输出日志到控制台 springboot有很多starter(参考starter)方便快速构建项目依赖组件,logback是springboot默认的日志组件,启动即可看到打印在控制台输出的info ...
- java内存解析
ass BirthDate{ private int day; private int month; private int year; public BirthDate(int d;int m,in ...
- linux信号的介绍
1.基本概念 中断: 中断是系统对于异步事件的响应 中断信号 中断源 现场信息 中断处理程序 中断向量表 ...
- php 与 c++ openssl 加密通信
$key = '1234567890123456'; $iv = '1234567890123456'; $enc = openssl_encrypt("hello wolrd!" ...
- LabVIEW之Vision基础 (一)之软件
一.软件准备 NI LabVIEW软件视觉开发必备软件 1.开发平台:LabVIEW 2015Chinese 32位中文版 链接:http://pan.baidu.com/s/1eRGmFVc 2.N ...
- lua5.3中luaL_setfunc设置upvalue的用法示例
缘起 luaL_setfuncs 这个函数可以注册c函数到lua,另外还可以设置闭包函数使用的变量upvalue. 我没有用过,在 云风的skynet 才第一次见过,于是写个例子实际使用以下. 函数原 ...
- hadoop系统的端口
hadoop系统部署时用到不少端口.有的是Web UI所使用的,有的是内部通信所使用的,有的是监控所使用的.实际系统中可能用于防火墙的端口设计.一些内部通信用的端口可能也需要外部能访问.如两个集群的数 ...
- LA 3720 高速公路(互质判斜率)
https://vjudge.net/problem/UVALive-3720 题意: 有一个n行m列的点阵,问一共有多少条非水平非垂直的直线至少穿过其中的两个点. 思路: 没思路的题. 首先枚举矩形 ...
- Android -- 两个activity界面的切换, 显示Intent 和 隐式Intent,putExtra传递数据
1. 两个Activity之间可以通过Intent切换, 包括显示Intent 和 隐式Intent. 实例代码 MainActivity.java public class MainActivity ...