redis字符串命令
来源:互联网 发布:mac dock 顺序 编辑:程序博客网 时间:2024/06/06 04:03
字符串命令是redis中最常见,最简单的命令。
1、set命令-设置指定key的值
redis中set命令用于设置给定 key的值,如果key已经存储其他值,则覆盖旧值。
语法:
set key_name value
版本:1.0.0及以上
返回值:
在redis 2.6.12以前版本,set命令总返回ok
从redis 2.6.12版本开始,set在设置操作成功完成时,才返回ok
redis 127.0.0.1:6379> SET key "value"OKredis 127.0.0.1:6379> GET key"value"redis 127.0.0.1:6379> SET key "new-value"OKredis 127.0.0.1:6379> GET key"new-value"
2、get命令-获取指定的key值
语法:
get key_name
版本:1.0.0及以上
返回值:返回key的值,如果key不存在时,返回nil。如果key不是字符串类型,那么返回一个错误。
127.0.0.1:6379> get mynumber"100"127.0.0.1:6379> get abc(nil)127.0.0.1:6379> get mylist(error) WRONGTYPE Operation against a key holding the wrong kind of value127.0.0.1:6379>
3、getrange命令-返回key中字符串值的子串
redis中getrange命令用于获取存储在指定key中字符串的子字符串。字符串的截取范围由start和end两个偏移量决定。
语法:
getrange keyname start end
版本:2.4.0及以上
返回值:
截取得到的子字符串。如果keyname类型不是string,报告对应的错误
127.0.0.1:6379> getrange mynumber 1 2"00"127.0.0.1:6379> getrange abc 1 2""127.0.0.1:6379> getrange mylist(error) ERR wrong number of arguments for 'getrange' command127.0.0.1:6379>
4、getset命令-将给定key的值设置为value,并返回key的旧值。
redis中getset命令用于设置指定key的值,并返回key的旧值。
语法:
getset keyname vale
版本:1.0.0及以上
返回值;返回给定Key的旧值,当key没有旧值时,即key不存在时,返回nil。
当key存在但是不是字符串类型时,返回一个错误。
127.0.0.1:6379> getset mynumber "10000""100"127.0.0.1:6379> getset aaa(error) ERR wrong number of arguments for 'getset' command127.0.0.1:6379> getset mylist(error) ERR wrong number of arguments for 'getset' command127.0.0.1:6379>
5、getbit命令-对key所储存的字符串值,获取指定便宜上的位。
语法:
getbit keyname offset
版本:2.2.0及以上
返回值:
字符串值指定偏移量上的位(bit)
当偏移量offset比字符串值的长度大,或者key不存在时,返回0。
127.0.0.1:6379> getbit mynumber 3(integer) 1127.0.0.1:6379> getbit aaa 1(integer) 0127.0.0.1:6379> getbit mylist 1(error) WRONGTYPE Operation against a key holding the wrong kind of value
由于当字符串value的key的位可能为0和1。不存在也是0,所以这个命令不是很常用
6、mget命令-获取室友给定key的值
redis中mget命令用于返回所有(一个或多个)给定的key值。如果给定的key里边,有某个key不存在,那么这个key返回特殊值nil
语法:
mget key1 [key2 ... keyn]
版本:1.0.0及以上
返回值:
一个包含所有给定key的值的列表
127.0.0.1:6379> mget mynumber aaa mylist1) "10000"2) (nil)3) (nil)127.0.0.1:6379>
7、setbit命令-对key所储存的字符串值,设置或清除指定偏移上的位(bit)
语法:
setbit keyname offset value(0 or 1)
版本:2.2.0及以上
返回值:
指定偏移量原来的存储的位。
eg:
127.0.0.1:6379> setbit mynumber 2 0(integer) 1127.0.0.1:6379> getbit mynumber 2(integer) 0127.0.0.1:6379> get mynumber"\x110000"127.0.0.1:6379> setbit mynumber 2 1(integer) 0127.0.0.1:6379> getbit mynumber 1(integer) 0127.0.0.1:6379>127.0.0.1:6379> get mynumber"10000"
8、setex命令-将值value关联到key,给key设置过期时间
redis中setex命令为指定的key设置值及过期时间。如果key已经存在,setex命令将会替换旧的值。
语法:
setex keyname timeout value
版本:2.0.0
返回值:设置成功时返回OK
eg:
127.0.0.1:6379> setex testsetex 100 "just a test"OK127.0.0.1:6379> ttl testsetex(integer) 94127.0.0.1:6379> setex mylist 110 "second test"OK127.0.0.1:6379> get mylist"second test"
注意:不管key的value原来是什么类型,都会被重置为输入的value。
9、setrange命令-从指定偏移开始覆盖给定key所储存的字符串。
语法:
setrange keyname offset value
版本:2.0.0
返回值:
被修改后的字符串长度。
eg:
redis 127.0.0.1:6379> SET key1 "Hello World"OKredis 127.0.0.1:6379> SETRANGE key1 6 "Redis"(integer) 11redis 127.0.0.1:6379> GET key1"Hello Redis"
错误情况:
127.0.0.1:6379> rpush mylist "abc"(integer) 1127.0.0.1:6379> get mylist(error) WRONGTYPE Operation against a key holding the wrong kind of value127.0.0.1:6379> get key1"Hello Redis"127.0.0.1:6379> setrange 100 "wuzhiming"(error) ERR wrong number of arguments for 'setrange' command127.0.0.1:6379> setrange 2 mylilst "wuzhiming"(error) ERR value is not an integer or out of range127.0.0.1:6379>
10、strlen命令-返回key所储存的字符串值的长度。
redis中strlen命令用于获取指定key所储存的字符串的长度。当key储存的不是字符串值时,返回一个错误。
语法:
strlen keyname
版本:2.2.0及以上
返回值:字符串的长度。当key不存在时,返回0
eg:
redis> SET mykey "Hello world"OKredis> STRLEN mykey(integer) 11redis> STRLEN nonexisting(integer) 0
11、mset命令-同时设置一个或多个key-value
redis中mset命令用于同时设置一个或多个key-value。其中value需要是string类型。
语法:
mset key1 value1 [key2 value2 ... keyn valuen]
版本:1.0.1
返回值:ok
eg:
127.0.0.1:6379> mset key2 "aaa" key3 "bbb" mylist "ccc"OK127.0.0.1:6379> get mylist"ccc"127.0.0.1:6379>
从例子可以看出,就算key原来是list类型,也会被覆盖为string类型。
12、msetnx命令:同时设置多个key-value。当且仅当所有给定key都不存在。
redis中msetnx命令用于所有给定key都不存在时,同时设置一个或者多个key-value对。
语法:
msetnx key1 value1 [key2 value2 ... keyn valuen]
版本:1.0.1及以上
返回值:
当所有key都成功设置,返回1。如果所有给定key都设置失败(至少有一个key已经存在),那么返回0。
13、psetex命令-设置key的值的同时,以毫秒为单位设置key的生命时间。
语法:
psetex keyname EXPIRY_IN_MILLISECOND value
版本:2.6.0
返回值:设置成功返回ok
和setex一样,只是时间对应的单位变化了。
14、incr命令-将key中存储的数字值原子增加1。
redis中 incr命令将Key中存储的数字值增加1。
如果key不存在,那么key值会先被初始化为0,然后再执行incr操作。
如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。
现在在64位(bit)有符号数字表示之内。
语法:
incr keyname
版本:1.0.0及以上
返回值:执行incr命令之后key的值。
eg:
127.0.0.1:6379> set testincr "100"OK127.0.0.1:6379> incr testincr(integer) 101127.0.0.1:6379> get testincr"101"127.0.0.1:6379> incr mylist(error) ERR value is not an integer or out of range127.0.0.1:6379>
15、incrby命令-将key所存储的值加上给定的增量值(increment)
redis-incrby命令将key中所存储的数值加上指定的增量值。
如果key不存在,那么key的值会被初始化为0,然后再执行incrby命令。如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误,操作的值限制在64位有符号数字表示之内。
语法:
incrby keyname incrnumber
版本:1.0.0及以上
返回值:
加上指定的增量值之后,key的值。
eg:
127.0.0.1:6379> get testincr"101"127.0.0.1:6379> incrby testincr 2(integer) 103127.0.0.1:6379> get testincr"103"127.0.0.1:6379> incrby mylist 2(error) ERR value is not an integer or out of range127.0.0.1:6379> incrby aaa(error) ERR wrong number of arguments for 'incrby' command127.0.0.1:6379> incrby aaa 3(integer) 3
16、incrbyfloat命令-将key所存储的值加上给定的浮点增量值。
redis中incrbyfloat命令为key中所存储的值加上指定的浮点数增量值,如果key不存在,那么incrbyfloat会先将key的值设为0,再执行加法操作。
语法:
increbyfloat keyname incrnumber
版本:2.6.0及以上
返回值:
执行命令后key的值。
eg:
127.0.0.1:6379> set float "0.01"OK127.0.0.1:6379> get float"0.01"127.0.0.1:6379> incrbyfloat float "1.2""1.21"127.0.0.1:6379> get float"1.21"127.0.0.1:6379> get testincr"103"127.0.0.1:6379> incrbyfloat testincr "0.01""103.01000000000001"127.0.0.1:6379> incrbyfloat mylist "0.01"(error) ERR value is not a valid float
17、decr命令-将key中存储的数字值减1
redis中decr命令将key中存储的数字值减1。如果key不存在,那么key的值会先被初始化为0,然后再执行decr操作。
如果值包含错误的类型,或者字符串的值不能表示为数字,那么返回一个错误。
语法:
decr keyname
版本:1.0.0及以上
返回值:执行命令之后key的值。
eg:
# 对存在的数字值 key 进行 DECRredis> SET failure_times 10OKredis> DECR failure_times(integer) 9# 对不存在的 key 值进行 DECRredis> EXISTS count(integer) 0redis> DECR count(integer) -1# 对存在但不是数值的 key 进行 DECRredis> SET company YOUR_CODE_SUCKS.LLCOKredis> DECR company(error) ERR value is not an integer or out of range
18、decrby命令-key所存储的值减去给定减量值。
redis中decrby命令将key所存储的值减去指定的减量值。
如果key不存在,那么key的值会先被初始化为0,然后执行decrby操作。如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。
语法:
decrby keyname number
版本:1.0.0及以上
返回值:减去指定减量值之后,key的值。
eg:
# 对已存在的 key 进行 DECRBYredis> SET count 100OKredis> DECRBY count 20(integer) 80# 对不存在的 key 进行DECRBYredis> EXISTS pages(integer) 0redis> DECRBY pages 10(integer) -10
19、append命令-如果key已经存在并且是一个字符串,append命令将key原来的值末尾追加一个值。
redis中append命令用于为指定的key追加值。如果key已经存在并且是一个字符串,append命令将value追加到Key原来的值的末尾。如果key不存在,append就简单地将给定key设为value,就像执行set key value一样。
语法:
append keyname newvalue
版本:2.0.0及以上
返回值:追加指定值之后,key中字符串的长度。
eg:
# 对不存在的 key 执行 APPENDredis> EXISTS myphone # 确保 myphone 不存在(integer) 0redis> APPEND myphone "nokia" # 对不存在的 key 进行 APPEND ,等同于 SET myphone "nokia"(integer) 5 # 字符长度# 对已存在的字符串进行 APPENDredis> APPEND myphone " - 1110" # 长度从 5 个字符增加到 12 个字符(integer) 12redis> GET myphone"nokia - 1110"
- Redis 字符串处理命令
- redis字符串类型命令
- Redis 字符串命令
- Redis字符串命令
- redis字符串命令
- Redis 字符串命令
- redis字符串命令
- redis 字符串命令学习1
- Redis字符串类型操作命令
- redis字符串类型操作命令
- Redis常用的命令(三)------字符串
- Redis字符串类型命令介绍(一)
- Redis字符串类型命令介绍(二)
- redis必杀命令:字符串(String)
- Redis 字符串介绍及相关命令
- redis命令 ----redis字符串(string)-----(三)
- Redis缓存命令整理—String字符串操作命令
- redis之字符串命令源码解析(一)
- 图片处理Lrucache 缓存防止OOM
- 服务器代理配置
- CentOS7下解决ifconfig command not found的办法
- iframe加载方案及性能
- PHP将数据库中的数据输出到txt文件,怎么读取txt文件
- redis字符串命令
- spring mvc 跨域
- cookie操作:设置cookie、读取cookie、删除cookie
- String 的深究
- 科普: 人工神经网络 VS 生物神经网络
- 【java基础:集合与IO】Properties集合与IO流相结合进行数据读取和存储的demostration
- 模板库(杂)
- Java网络爬虫基础和抓取网站数据的两个小实例
- mysql修改默认端口