当前位置:操作系统 > Unix/Linux >>

string主要操作函数


string主要操作函数
 
1、新增
  www.zzzyk.com  
a)set
 
语法:set key value
 
解释:把值value赋给key,如果key不存在,新增;否则,更新
 
[plain] 
[root@xsf001 ~]# redis-cli   
redis 127.0.0.1:6379> set user.1.name zhangsan #设置user.1.name 为zhangsan  
OK  
redis 127.0.0.1:6379> set user.name 45      #设置user.1.name 为45  
OK  
               b)setnx
语法:setnx key value
  www.zzzyk.com  
解释:只insert不update,即,仅仅key不存在时,则设置key的值为value,并返回1,否则返回0  。setnx 是set if not exists 的缩写
 
[plain] 
redis 127.0.0.1:6379> setnx user.1.name zhangsan   #user.1.name已经存在,则返回0  
(integer) 0  
redis 127.0.0.1:6379> setnx user.2.name zhangsan  #user.2.name不存在,则设置  
(integer) 1  
 c)setex
语法: setex key seconds value
 
解释:设置key的过期时间和值。过期时间seconds单位是秒。设置过期时间和值是原子操作,如果redis仅仅当做缓存,这个很命令很有用。
 
[plain] 
redis 127.0.0.1:6379> setex user.2.age 2 14  #把user.2.age 的值设14 并且2秒后过期失效  
OK  
redis 127.0.0.1:6379> get user.2.age  #失效前  
"14"  
redis 127.0.0.1:6379> get user.2.age #失效后  
(nil)  
 d)mset
语法:mset key value [key value ...]
  www.zzzyk.com  
解释:同时设置多个key-value
 
[plain] 
redis 127.0.0.1:6379> mset user.4.name lisi user.4.age 34  #设置user.4.name=lisi,user.4.age=34  
OK  
redis 127.0.0.1:6379> get user.4.name  
"lisi"  
redis 127.0.0.1:6379> get user.4.age  
"34"  
 
             e)msetnx
语法:msetnx key value [key value ...]
 
解释:所有key都不存在才执行set操作
 
[plain] 
redis 127.0.0.1:6379> msetnx user.4.name lisi user.4.age 34  #key 都设置过,无法再次set  
(integer) 0  
redis 127.0.0.1:6379> msetnx user.4.name lisi user.4.std 3   #key user.4.name 曾设置过,无法再次设置  
(integer) 0  
redis 127.0.0.1:6379> msetnx user.4.tech lisi user.4.std 3   #key都没有设置过,可以再次设  
(integer) 1  
 
2、查询
a)get
 
语法:get key
 
解释:获取key所set的值
  www.zzzyk.com  
[plain] 
redis 127.0.0.1:6379> get user.4.name  #获取user.4.name 的值  
"lisi"  
redis 127.0.0.1:6379> get user.4.age  
"34"  
redis 127.0.0.1:6379> get user.4.tech  
"lisi"  
redis 127.0.0.1:6379> get user.4.std  
"3"  
 b)mget
语法: get key [key]
 
解释:批量获取key的值。程序一次获取多个值,可以减少网络连接损耗。
 
[plain] 
redis 127.0.0.1:6379> mget user.4.name user.4.age user.4.std #批量获取存在key的值  
1) "lisi"   #user.4.name的值  
2) "34"     #user.4.age 的值  
3) "3"      #user.4.std 的值  
  
redis 127.0.0.1:6379> mget user.4.name user.4.age user.4.std user.4.fri  #key user.4.fri 不存在仍然可以返回  
1) "lisi"  
2) "34"  
3) "3"  
4) (nil) #user.4.fri 的值  
            c)getrange
语法:getrange key star end
 
解释:获取存储在key中value的字串。字符串的截取有star和end决定,字符串的第一个字符编号是0,第二个是1,一次类推;如果是负数,-1是最后一个字符,-2是倒数第二个字符,一次类推。
 
[plain] 
redis 127.0.0.1:6379> get user.4.name  
"lisi"  
redis 127.0.0.1:6379> getrange user.4.name 0 3  # 0 表示开始  
"lisi"  
redis 127.0.0.1:6379> getrange user.4.name 1 2  
"is"  
redis 127.0.0.1:6379> getrange user.4.name 1 -2 #-2 表示倒数第二  
"is"  
redis 127.0.0.1:6379> getrange user.4.name -1 -2  # end 》 start  
""  
redis 127.0.0.1:6379> getrange user.4.name 1 66  #end 》 值的长度  
"isi"  
  3、修改
a)getset
 
语法:getset key value
 
解释:设置key的值,并返回key的旧值。
 
[plain] 
redis 127.0.0.1:6379> get user.4.name   #存在的key  
"lisi"  
redis 127.0.0.1:6379> getset user.4.name wangwu  #把存在的user.4.name设置为wagnwu  
"lisi"  
redis 127.0.0.1:6379> get user.4.name    
"wangwu"  
redis 127.0.0.1:6379> get user.5.name  #不存在的key  
(nil)  
redis 127.0.0.1:6379> getset user.5.name lisi  
(nil)  
redis 127.0.0.1:6379> get user.5.name  
"lisi"  
  b) append
语法:append key value
  www.zzzyk.com  
解释:key存在,在旧值的后面追加value;key不存在,直接set
 
[plain] 
redis 127.0.0.1:6379> get user.4.name #存在的key  
"wangwu"  
redis 127.0.0.1:6379> append user.4.name 01  
(integer) 8  
redis 127.0.0.1:6379> get user.4.name  
"wangwu01"  
[plain] 
redis 127.0.0.1:6379> get user.6.name #不能存在的key  
(nil)  
redis 127.0.0.1:6379> append user.6.name jim  
(integer) 3  
redis 127.0.0.1:6379> get user.6.name  
"jim"  
 
c)setrange
语法:setrange key offset value
 
解释:用value重写key值的一部分,偏移量由offset指定
 
[plain] 
redis 127.0.0.1:6379> get user.4.name  #key存在  
"wangwu01"  
redis 127.0.0.1:6379> setrange user.4.name 0 lisi  
(integer) 8  
redis 127.0.0.1:6379> get user.4.name  
"lisiwu01"  
redis 127.0.0.1:6379> setrange user.4.name 9 lisi  # offset 》字符串长度  
(integer) 13  
redis 127.0.0.1:6379> get user.4.name  
"lisiwu01\x00lisi"  
redis 127.0.0.1:6379> setrange user.4.name 8 lisi  
(integer) 13  
red
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,