redis的String类型以及其操作
Redis的数据类型
String类型以及操作
String是最简单的数据类型,一个key对应一个Value,String类型是二进制安全的。Redis的String可以包含任何数据,比如jpg图片或者序列化对象
Set
设置key对应的值为string类型的value
例如:我们添加一个name为lijie的键值对
127.0.0.1:6379> set name lijie OK 127.0.0.1:6379> get name "lijie" 127.0.0.1:6379> set name lambrother OK 127.0.0.1:6379> get name "lambrother"
我们再次设置name为lambrother,后面发现将前面的lijie覆盖了。
Setnx
设置key对应的值为string类型的value,如果key已经存在,返回0,nx是not exist的意思
例如我们添加一个name = lijie_new的键值对
127.0.0.1:6379> setnx name lijie_new (integer) 0 127.0.0.1:6379> get name "lambrother" 127.0.0.1:6379> setnx age 20 (integer) 1 127.0.0.1:6379> get age "20"
Setex
设置key对应的值为string类型的value,并指定键值对的有效期
例如:我们添加一个haircolor = red的键值对,并制定有效期为10秒
127.0.0.1:6379> setex haircolor 10 red OK 127.0.0.1:6379> get haircolor "red" 10秒后 127.0.0.1:6379> get haircolor (nil) nil指的是空的意思。 127.0.0.1:6379> setnx haircolor red (integer) 1 //验证了前面的键值对失效了。
Setrange
设置指定key的value值的子字符串
例如:我们希望将lijie的126邮箱替换成为gmail邮箱
127.0.0.1:6379> set email lijie@lambrother.net OK 127.0.0.1:6379> get email "lijie@lambrother.net" 127.0.0.1:6379> setrange email 6 li-jie.me //6代表的是原来字符串的开始替换位置的下标 (integer) 20 //20 代表的是新字符串的长度 127.0.0.1:6379> get email "lijie@li-jie.mer.net" //观察发现替换后的字符串如果长度没有原来字符串长,会将原来字符串的剩余依旧拼接
mset
一次设置多个key的值,成功返回ok表示所有的值都设置了,失败返回0表示没有任何值被设置
127.0.0.1:6379> mset key1 lijie1 key2 lijie2 OK 127.0.0.1:6379> get key1 "lijie1" 127.0.0.1:6379> get key2 "lijie2"
msetnx
一次设置多个key的值,成功返回ok表示所有的值都设置了,失败返回0表示没有任何值被设置,但是不会覆盖已经存在的key
127.0.0.1:6379> msetnx key3 lambrother key4 lijie@lambrother.net key2 lijie (integer) 0 127.0.0.1:6379> get key3 (nil) 127.0.0.1:6379> get key4 (nil) 127.0.0.1:6379> msetnx key3 lambrother key4 lijie@lambrother.net key5 lijie (integer) 1 127.0.0.1:6379> get key3 "lambrother" 127.0.0.1:6379> get key4 "lijie@lambrother.net" 127.0.0.1:6379> get key5 "lijie" 127.0.0.1:6379>
getset
设置key的值并返回旧的key值
127.0.0.1:6379> get key5 "lijie" 127.0.0.1:6379> getset key5 haha "lijie" 127.0.0.1:6379> get key5 "haha" 127.0.0.1:6379>
getrange
获取子字符串
127.0.0.1:6379> get email "lijie@li-jie.mer.net" 127.0.0.1:6379> getrange email 0 5 //获取email的value的0索引到5(包括5)索引的值 "lijie@" 127.0.0.1:6379>
mget
批量获取
127.0.0.1:6379> mget key1 key2 key3 key4 key5 key 6 1) "lijie1" 2) "lijie2" 3) "lambrother" 4) "lijie@lambrother.net" 5) "haha" 6) (nil) 7) (nil) 127.0.0.1:6379>
incr
对key的值做加加操作,并返回新的值
127.0.0.1:6379> set key6 30 OK 127.0.0.1:6379> get key6 "30" 127.0.0.1:6379> incr key6 (integer) 31 127.0.0.1:6379> incr key6 (integer) 32 127.0.0.1:6379> get key6 "32" 127.0.0.1:6379>
incrby
同incr类似,区别在于必须指定增量
127.0.0.1:6379> get key6 "37" 127.0.0.1:6379> incrby key6 5 (integer) 42 127.0.0.1:6379> incrby key6 -8 (integer) 34 127.0.0.1:6379>
decr
对key的值做减减操作
127.0.0.1:6379> decr key6 (integer) 33 127.0.0.1:6379> decr key6 (integer) 32
decrby
与decr类似,指定减量
127.0.0.1:6379> decrby key6 8 (integer) 24 127.0.0.1:6379> decrby key6 -7 (integer) 31
append
给指定key的字符串追加value,返回新字符串的长度
127.0.0.1:6379> get name "lambrother" 127.0.0.1:6379> append name .net (integer) 14 127.0.0.1:6379> get name "lambrother.net"
strlen
取指定key的value的长度
127.0.0.1:6379> strlen name (integer) 14
相关文章
- 使用Jedis操作Redis
- Redis命令总结
- Redis安装完后redis-cli无法使用(redis-cli: command not found)
- redis数据类型
- Redis学习(8)-redis其他特性
- Redis的Python客户端redis-py的初步使用
- mac brew install redis 报错
- redis 简单整理——复制的原理[二十三]
- Atititt java redis jedis 使用 Redis体系 Redis 命令 Redis 命令Redis 键(key)Redis 字符串(String)Redis 哈希(Hash)R
- redis连接池操作
- ASP.NET Core微服务(六)——【.Net Core操作redis】StackExchange.Redis
- 设计模式之PHP项目应用——单例模式设计Memcache和Redis操作类
- 017-redis-阶段总结
- Redis源代码分析(十二)--- redis-check-dump本地数据库检測
- redis_03 _ 高性能IO模型:为什么单线程Redis能那么快
- redis_02 _ 数据结构:快速的Redis有哪些慢操作?
- 把 MongoDB 当成是纯内存数据库来使用(Redis 风格)
- Redis进阶学习10---redis最佳实践
- 03-Redis客户端连接Redis服务器(redis.conf 文件配置没有生效导致redis运行报错Error: Connection reset by peer)
- ASP.NET Core微服务(六)——【.Net Core操作redis】StackExchange.Redis
- 【超详细】阿里/华为云服务器部署环境快速搭建一条龙【git、maven、jdk8、docker安装nginx、mysql、redis】
- redis单线程原理___Redis为何那么快-----底层原理浅析
- 阿里云云数据库Redis的基本使用(十六)