ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

String字符串类型详解

2022-02-23 20:00:27  阅读:185  来源: 互联网

标签:127.0 String views 0.1 6379 详解 字符串 integer name


String字符串类型详解

追加与获取长度

127.0.0.1:6379[3]> keys * # 查询所有key
1) "age"
127.0.0.1:6379[3]> set name oh # 设置key
OK
127.0.0.1:6379[3]> get name # 获取name的值
"oh"
127.0.0.1:6379[3]> append name mydream # 在name值后面追加,如果该key不存在,就相当于创建key
(integer) 9
127.0.0.1:6379[3]> get  name
"ohmydream"
127.0.0.1:6379[3]> strlen name # 获取字符串长度
(integer) 9

自增自减与

127.0.0.1:6379[3]> set views 0 
OK
127.0.0.1:6379[3]> incr views # views 值自增
(integer) 1
127.0.0.1:6379[3]> incr views 
(integer) 2
127.0.0.1:6379[3]> decr views # views 值自减
(integer) 1
127.0.0.1:6379[3]> decr views
(integer) 0
127.0.0.1:6379[3]> incrby views 10 # views 值增加一定步长
(integer) 10
127.0.0.1:6379[3]> decrby views 10 # views 值减少一定步长
(integer) 0

更改指定范围字符串

127.0.0.1:6379[3]> getrange name 0 3 # name 获取0-3下标之间的值
"ohmy"
127.0.0.1:6379[3]> set key2 abcdefgh 
OK
127.0.0.1:6379[3]> get key2 #
"abcdefgh"
127.0.0.1:6379[3]> setrange key2 0 xx # name 设置0开始的下标之间的值
(integer) 8
127.0.0.1:6379[3]> get key2
"xxcdefgh"

setex和setnx

# setex (set with expire) 设置超时配置
# setnx (set if not exists) 如果不存在设置,分布式锁中会常使用
127.0.0.1:6379[3]> setex key10 100 hello # 设置key10的值为hello,有效时间为100s
OK
127.0.0.1:6379[3]> ttl key10 # time to live 查询剩余存活时间
(integer) 88
127.0.0.1:6379[3]> ttl key10
(integer) 85
127.0.0.1:6379[3]> get key10
"hello"
127.0.0.1:6379[3]> setnx key100 100 # 如果key100不存在设置其值为100,否则不设置
(integer) 1 # 返回1说明设置成功,返回0说明设置未生效
127.0.0.1:6379[3]> get key100
"100"

批量操作

# mset 批量插入
# mget 批量获取

127.0.0.1:6379[3]> mset k1 v1 k2 v2 k3 v3 # 同时设置多个值
OK
127.0.0.1:6379[3]> keys *
1) "k3"
2) "k2"
3) "k1"
127.0.0.1:6379[3]> mget k1 k2 # 同时获取多个值
1) "v1"
2) "v2"
127.0.0.1:6379[3]> mget k1 k2 k3
1) "v1"
2) "v2"
3) "v3"
127.0.0.1:6379[3]> mget k1 k2 k3 k4
1) "v1"
2) "v2"
3) "v3"
4) (nil)
127.0.0.1:6379[3]> msetnx k1 k10 k4 v4 # 不存在设置,只有全为1才为1,不能有的设置成功,有的设置不成功,是一个原子性操作
(integer) 0
127.0.0.1:6379[3]> keys *
1) "k3"
2) "k2"
3) "k1"

设置对象

127.0.0.1:6379[3]> set user:1 {name:zhangsan,age:2} # 设置user1 对象
OK
127.0.0.1:6379[3]> keys *
1) "user:1"
127.0.0.1:6379[3]> mset user:2:name lisi user:2:age 3 # 设置user2 对象
OK
127.0.0.1:6379[3]> keys *
1) "user:2:age"
2) "user:2:name"
3) "user:1"

getset

# getset key value   如果key不存在就设置为value,返回null;如果存在就设置值为value,返回原来的值
127.0.0.1:6379[3]> getset db redis
(nil)
127.0.0.1:6379[3]> get db
"redis"
127.0.0.1:6379[3]> get db
"redis"
127.0.0.1:6379[3]> getset db mongodb
"redis"

String类型的使用场景,value除了是字符串还可以是数字

  • 计数器
  • 统计多单位的数量

标签:127.0,String,views,0.1,6379,详解,字符串,integer,name
来源: https://www.cnblogs.com/Oh-mydream/p/15929003.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有