前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >redis学习(五)

redis学习(五)

作者头像
崔笑颜
发布2020-08-31 11:08:34
3320
发布2020-08-31 11:08:34
举报
文章被收录于专栏:小小码农一个。

五大数据类型

官网文档

后面我们使用SpringBoot。Jedis,所有的方法,就是这些命令!

Redis-key

代码语言:javascript
复制
127.0.0.1:6666> keys * # 查看所有key
(empty array)
127.0.0.1:6666> set name cxy # 存入一个字符串类型
OK
127.0.0.1:6666> keys *
1) "name"
127.0.0.1:6666> set age 1
OK
127.0.0.1:6666> keys *
1) "age"
2) "name"
127.0.0.1:6666> exists name # 判断当前key是否存在
(integer) 1
127.0.0.1:6666> exists name1
(integer) 0
127.0.0.1:6666> move name 1 # 移除当前key
(integer) 1
127.0.0.1:6666> keys *
1) "age"
127.0.0.1:6666> set name cuixiaoyan
OK
127.0.0.1:6666> keys *
1) "age"
2) "name"
127.0.0.1:6666> get name
"cuixiaoyan"
127.0.0.1:6666> expire name 10 # 设置key过期时间
(integer) 1
127.0.0.1:6666> ttl name # 查看key的剩余时间
(integer) 6
127.0.0.1:6666> ttl name 
(integer) 5
127.0.0.1:6666> ttl name 
(integer) -2
127.0.0.1:6666> get name
(nil)
127.0.0.1:6666> type age # 通过key查看类型
string

string(字符串)

代码语言:javascript
复制
# 基本操作
127.0.0.1:6666> flushall # 清空redis
OK
127.0.0.1:6666> set key1 v1 
OK
127.0.0.1:6666> get key1
"v1"
127.0.0.1:6666> exists key1 # 判断key是否存在
(integer) 1
127.0.0.1:6666> append key1 "hello" # 追加字符串
(integer) 7
127.0.0.1:6666> get key1
"v1hello"
127.0.0.1:6666> strlen key1 # 通过key获取值的长度
(integer) 7
127.0.0.1:6666> append key1 "cxy"
(integer) 10
127.0.0.1:6666> strlen key1
(integer) 10
127.0.0.1:6666> get key1
"v1hellocxy"
# i++ 步长 i+=
127.0.0.1:6666> set views 0 # 初始化
OK
127.0.0.1:6666> get views
"0"
127.0.0.1:6666> incr views # incr 加一
(integer) 1
127.0.0.1:6666> incr views
(integer) 2
127.0.0.1:6666> decr views # decr 减一
(integer) 1
127.0.0.1:6666> decr views
(integer) 0
127.0.0.1:6666> incrby views 10 # incrby 加n
(integer) 10
127.0.0.1:6666> incrby views 10
(integer) 20
127.0.0.1:6666> decrby views 5 # decrby 减n
(integer) 15
# 字符串范围 range
127.0.0.1:6666> set key1 "hello,cuixiaoyan"
OK
127.0.0.1:6666> get key1
"hello,cuixiaoyan"
127.0.0.1:6666> getrange key1 0 3 # 截取字符串[0,3]
"hell"
127.0.0.1:6666> getrange key1 0 -1 # -1为全部,效果如同get key
"hello,cuixiaoyan"
127.0.0.1:6666> set key2 qqwsadascas
OK
127.0.0.1:6666> get key2
"qqwsadascas"
127.0.0.1:6666> setrange key2 1 xxx # 替换指定位置开始的字符串为 xxx
(integer) 11
127.0.0.1:6666> get key2
"qxxxadascas"
# 设置过期时间 setex(set with expire) 不存在时再进行设置(分布式锁中会使用到) setnx(set if not exist)
127.0.0.1:6666> setex key3 30 "hello" # 设置过期时间为30秒
OK
127.0.0.1:6666> ttl key3
(integer) 26
127.0.0.1:6666> ttl key3
(integer) 16
127.0.0.1:6666> setnx mykey "redis" # key不存在才会增加
(integer) 1
127.0.0.1:6666> keys *
1) "key2"
2) "views"
3) "mykey"
4) "key1"
127.0.0.1:6666> setnx mykey "MongoDB" # 替换失败
(integer) 0
127.0.0.1:6666> getrange mykey 0 -1 # 截取字符串,等同于get key
"redis"
127.0.0.1:6666> setnx mykey1 "MongoDB" # 新增成功
(integer) 1
127.0.0.1:6666> getrange mykey1 0 -1
"MongoDB"
# 设置多个值,mset,mget
127.0.0.1:6666> flushall #先清空
OK
127.0.0.1:6666> mset k1 v1 k2 v2 k3 v3 # 批量设置多个
OK
127.0.0.1:6666> keys *
1) "k3"
2) "k1"
3) "k2"
127.0.0.1:6666> mget k1 k2 k3 # 批量获取多个
1) "v1"
2) "v2"
3) "v3"
127.0.0.1:6666> msetnx k1 v1 k4 v4 #因为k1已经存在,不符合条件,原子性不满足,导致失败。
(integer) 0
127.0.0.1:6666> keys *
1) "k3"
2) "k1"
3) "k2"
# 设置一个对象,这里的key是一个巧妙的设计: user:{id}:{filed} , 如此设计在Redis中是完全可以的。
127.0.0.1:6666> mset user:1:name cxy user:1:age 2
OK
127.0.0.1:6666> mget user:1:name user:1:age
1) "cxy"
2) "2"
# getset 先get,再set。
127.0.0.1:6666> getset db redis # 第一次获取没有key,返回nil,将会赋值。
(nil)
127.0.0.1:6666> get db 
"redis"
127.0.0.1:6666> getset db mysql # 第二次有值之后,就会修改。
"redis"
127.0.0.1:6666> get db
"mysql"

数据结构是相同的! String类似的使用场景:value除了是我们的字符串还可以是我们的数字!

  • 计数器
  • 统计多单位的数量
  • 粉丝数
  • 对象缓存存储
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-08-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 五大数据类型
    • Redis-key
      • string(字符串)
      相关产品与服务
      云数据库 MongoDB
      腾讯云数据库 MongoDB(TencentDB for MongoDB)是腾讯云基于全球广受欢迎的 MongoDB 打造的高性能 NoSQL 数据库,100%完全兼容 MongoDB 协议,支持跨文档事务,提供稳定丰富的监控管理,弹性可扩展、自动容灾,适用于文档型数据库场景,您无需自建灾备体系及控制管理系统。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档