网站建设管理的建议,在线网页制作培训,网站需要更新的频率,手机应用商店下载安装目录
3. 数据类型命令及落地应用
3.1 备注
3.2 Redis字符串#xff08;String#xff09;
单值单value
多值操作
获取指定区间范围内的值
数值增减
获取字符串长度和内容追加
分布式锁
getset(先get后set)
3.3 Redis列表#xff08;List#xff09;
简单说明
…目录
3. 数据类型命令及落地应用
3.1 备注
3.2 Redis字符串String
单值单value
多值操作
获取指定区间范围内的值
数值增减
获取字符串长度和内容追加
分布式锁
getset(先get后set)
3.3 Redis列表List
简单说明
单key 多value
3.4 Redis哈希Hash
KV模式不变但是V是一个键值对 3. 数据类型命令及落地应用
3.1 备注
命令不区分大小写而key是区分大小写的
永远的帮助命令help 类型
help
3.2 Redis字符串String
单值单value
set key value
SET命令有EX、PX、NX、XX以及KEEPTTL五个可选参数 EX seconds:以秒为单位设置过期时间 Px milliseconds: 以毫为单位设置过期时间 EXAT timestamp:设置以秒为单位的UNIX时间戳所对应的时间为过期时间 PXAT milliseconds-timestamp:设置以毫秒为单位的UNIX时间戳所对应的时间为过期时间 NX:键不存在的时候设置键值 XX:键存在的时候设置键值 KEEPTTL:保留设置前指定键的生存时间 GET:返回指定键原本的值若键不存在时返回ni1
最常用的是
set key value
keepttl get key
多值操作
设置多个key value
mset k1 v1 k2 v2 k3 v3
获取多个值
mget k1 k2 k3
获取指定区间范围内的值 getrange/setrange
#获取全部getrange 0 -1
set k1 abcd1234
setrange k1 1 xxyy
#输出
axxyy234
数值增减 一定是数字才能加减 incr key / decr key incrby key / decrby key
set k1 100
get k1 #输出100
incr k1 #输出101
set k1 100
get k1 #输出100
incrby k1 3 #输出103
incrby k1 5 #输出108
set k1 100
get k1 #输出100
decr k1 #输出99
set k1 100
get k1 #输出100
decrby k1 5 #输出95
获取字符串长度和内容追加 strlen key append key value
set k1 abcd
get k1 #输出“abcd”
strlen k1 #输出 integer4
append k1 xxxx
get k1 #输出 “abcdxxxx”
分布式锁 setnx key value setex(set with expire)键秒值/setnx(set if not exist)
getset(先get后set)
3.3 Redis列表List
简单说明
一个双端链表的结构容量是2的32次方减1个元素大概40多亿主要功能有push/pop等一般用在栈、队列、消息队列等场景。
left、right都可以插入添加;
如果键不存在创建新的链表:
如果键已存在新增内容;
如果值全移除对应的键也就消失了。 它的底层实际是个双向链表对两端的操作性能很高通过索引下标的操作中间的节点性能会较差 单key 多value 微信公众号订阅的消息 一个人 订阅了多个公众号 中有多个消息 lpush / rpush / lrange
lpush list1 1 2 3 4 5 #输出 5
rpush list2 11 22 33 44 55 #输出 5
type list1 #输出 list
lrange list1 0 -1 #输出 5 4 3 2 1
lrange list2 0 -1 #输出 11 22 33 44 55 lpop / rpop
lpush list1 1 2 3 4 5 #输出 5
lrange list1 0 -1 #输出 5 4 3 2 1
lpop list1 #输出 5从左边弹
lrange list1 0 -1 #输出 4 3 2 1
rpop list1 #输出 1从右边弹
lrange list1 0 -1 #输出 4 3 2 lindex按照索引下标获得元素的个数从上到下
lrange list1 0 -1 #输出 4 3 2
lindex list1 0 #输出 4 llen获取列表中元素的个数
llen list1 #输出 3
llen list2 #输出 5 lrem key 数字N 给定值v1 删除N个值等于v1的元素 list允许有重复的元素
del list1
lpush list1 1 1 1 1 2 2 2 3 3 4 5 #输出 11
lrang list1 0 -1 #输出 5 4 3 3 2 2 2 1 1 1 1
lrem list1 3 1
lrang list1 0 -1 #输出 5 4 3 3 2 2 2 1 ltrim key 开始index 结束index截取指定范围的值后在赋值给key
lrang list1 0 -1 #输出 5 4 3 3 2 2 2 1
ltrim list1 4 7 #输出 ok
lrang list1 0 -1 #输出 2 2 2 1 rpoplpush 源列表 目的列表 移除列表的最后一个元素并将该元素添加到另一个列表并返回
lrang list1 0 -1 #输出 2 2 2 1
lrang list2 0 -1 #输出 11 22 33 44 55
rpoplpush list1 list2 #输出 1
lrang list1 0 -1 #输出 2 2 2
lrang list2 0 -1 #输出 1 11 22 33 44 55 lset key index value
lrang list1 0 -1 #输出 2 2 2
lset list1 1 mysql #输出 ok
lrang list1 0 -1 #输出 2 mysql 2 linsert key before / after 已有值 插入的新值
lrang list1 0 -1 #输出 2 mysql 2
linsert list1 mysql java
lrang list1 0 -1 #输出 2 java mysql 2
3.4 Redis哈希Hash
KV模式不变但是V是一个键值对 Map String , Map Object , Object hset / hget / hmset / hgetall / hdel
hset user:001 id 11 name zs age 25 #输出 3
hget user:001 id #输出 11
hget user:001 name #输出 zs
hmset user:001 id 12 name ls age 26 #输出 ok
hmget user:001 id name age #输出 12 ls 26
hgetall user:001 #输出 id 12 name ls age 26
hdel user:001 age #输出 1
hgetall user:001 #输出 id 12 name ls hlen
hgetall user:001 #输出 id 12 name ls
hlen user:001 #输出 2 hexists key 在key里面的某个值的key
hexists user:001 name #输出 1
hexists user:001 score #输出 0 hkeys / hvals
hkeys user:001 #输出 id name
hvals user:001 #输出 12 ls hincrby / hincrbyfloat 对数据相关的操作
hest user:001 age 25 score 99.5 #输出 2
hgetall user:001 #输出 id 12 name ls age 25 score 99.5
hincrby user:001 age 2 #输出 27
hgetall user:001 #输出 id 12 name ls age 27 score 99.5
hincrbyfloat user:001 score 0.5 #输出 100
hgetall user:001 #输出 id 12 name ls age 27 score 100 hsetnx 不存在 输出1 并添加 存在 输出0
hsetnx user:001 class 1 #输出 1
hsetnx user:001 class 1 #输出 0