首页 > 其他 > 详细

Redis的String和List基础命令

时间:2021-05-13 00:52:22      阅读:19      评论:0      收藏:0      [点我收藏+]

String类型

127.0.0.1:6379> set name jiehao #设置key-value
OK
127.0.0.1:6379> exists name  #验证 name 是否存在
(integer) 1
127.0.0.1:6379> get name  #获取 name 的value
"jiehao"


127.0.0.1:6379> move name 1 #将name移动至数据库1

127.0.0.1:6379> type name #查看key类型



127.0.0.1:6379> set name jh
OK
127.0.0.1:6379> get name
"jh"
127.0.0.1:6379> append name 666 #追加已有key的值,如果不存在追加的键值,其作用等于set
(integer) 5
127.0.0.1:6379> get name
"jh666"
127.0.0.1:6379> strlen name #显示string类value的长度
(integer) 5

##################################################
###### incr,decr
127.0.0.1:6379> set num 0
OK
127.0.0.1:6379> incr num #自增1
(integer) 1
127.0.0.1:6379> incr num
(integer) 2
127.0.0.1:6379> decr num #自减1
(integer) 1
127.0.0.1:6379> decr num
(integer) 0
127.0.0.1:6379> incrby num 6 #设置增量
(integer) 6
127.0.0.1:6379> decrby num 5 #设置减量
(integer) 1

##################################################
###### range
127.0.0.1:6379> set key hello,jh
OK
127.0.0.1:6379> getrange key 0 4 # 截取key的[0,4]字符串
"hello"

127.0.0.1:6379> getrange key 0 -1 # 截取key的所有字符串
"hello,jh"
127.0.0.1:6379> set key2 0 eeeee
(integer) 5
127.0.0.1:6379> get key2
"eeeee"
127.0.0.1:6379> setrange key2 0 ff # 指定位置替换字符串
(integer) 5
127.0.0.1:6379> get key2
"ffeee"


##################################################
###### setex(set with expire) 设置过期时间   setnx(set if not exist) 如果不存在该key再设置(常用于分布式锁)

127.0.0.1:6379> setex time 5 "timedown"  # 设置 time键,值timedown,倒计时5秒
OK
127.0.0.1:6379> ttl time # time to live 查看剩余时间
(integer) 1
127.0.0.1:6379> ttl time
(integer) -2
127.0.0.1:6379> set k1 jh
OK
127.0.0.1:6379> setnx k1 y # k1早存在所以再设置不会成功
(integer) 0
127.0.0.1:6379> get k1
"jh"


##################################################
###### mset,mget,msetnx....   more多个同时设置,获取
127.0.0.1:6379> mset k1 1 k2 2 k3 3
OK
127.0.0.1:6379> keys *
1) "k1"
2) "k3"
3) "k2"
127.0.0.1:6379> get k1
"1"
127.0.0.1:6379> get k2
"2"
127.0.0.1:6379> get k3
"3"
127.0.0.1:6379> mget k1 k2 k3
1) "1"
2) "2"
3) "3"
127.0.0.1:6379> msetnx k3 3 k4 4 # k3已经存在,该指令不生效,所以k4也不能写入,说明 mset(具有原子性,要么同时成功,要么同时失败)
(integer) 0
127.0.0.1:6379> get k4
(nil)


##################################################
###### getset 先获取再设置(用于更新操作)

127.0.0.1:6379> getset key true # key初始值未设置getset只有set设置生效
(nil)
127.0.0.1:6379> getset key false # getset中get获取上一次设置的true,之后set为新值false
"true"
127.0.0.1:6379> getset key end # getset中get获取上一次设置的false,之后set为新值end
"false"
127.0.0.1:6379> get key # 查看上一次getset更新的值
"end"


##################################################
###### 对象 user:1{name:jh,age:18} 设置一个user:1 对象,值为json字符保存

127.0.0.1:6379> mset user:1:name jh user:1:age 18
OK
127.0.0.1:6379> mget user:1:name user:1:age
1) "jh"
2) "18"


List

注意: list所有命令都是 l 开头,redis不区分大小写

push : 放入元素

技术分享图片

pop : 弹出元素

技术分享图片

lrem : 通过指定数量,元素名移除多个元素

技术分享图片

rpoplpush : 从一个列表弹出最右边的值,并放入新列表中

技术分享图片

ltrim : 通过下标截取字符串

技术分享图片

lset : 根据下标更新value

技术分享图片

linsert : 通过 before/after 指定元素名 插入值

技术分享图片

Redis的String和List基础命令

原文:https://www.cnblogs.com/jiehao-yu/p/14761650.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!