|NO.Z.00006|——————————|BigDataEnd|——|Hadoop&Redis.V06|——|Redis.v06|数据类型.v01|
一、Redis数据类型和应用场景
### --- [Redis数据结构及过期机制]
~~~ [Redis数据类型概述]
~~~ [Redis常用数据类型]
~~~ [Redis不常用数据类型]
### --- redis数据类型和应用场景
~~~ Redis是一个Key-Value的存储系统,使用ANSI C语言编写。
~~~ key的类型是字符串。
### --- value的数据类型有:
~~~ 常用的:string字符串类型list列表类型、set集合类型、sortedset(zset)有序集合类型、hash类型。
~~~ 不常见的:bitmap位图类型、geo地理位置类型。
~~~ Redis5.0新增一种:stream类型
~~~ 注意:Redis中命令是忽略大小写,(set SET),key是不忽略大小写的 (NAME name)
二、Redis的Key的设计
### --- Redis的Key的设计
~~~ 用:分割
~~~ 把表名转换为key前缀, 比如: user:
~~~ 第二段放置主键值
~~~ 第三段放置列名
useid | username | password | |
9 | zhangf | 111111 | zhanggf |
### --- 比如:用户表user, 转换为redis的key-value存储
~~~ 表示明确:看key知道意思
~~~ 不易被覆盖
username 的 key: user:9:username
{userid:9,username:zhangf}
email的key user:9:email
三、string字符串类型
### --- string字符串类型
~~~ Redis的String能表达3种值的类型:字符串、整数、浮点数 100.01 是个六位的串
~~~ 常见操作命令如下表:
命令名称 | 命令描述 | |
set | set key value | 赋值 |
get | get key | 取值 |
getset | getset key value | 取值并赋值 |
setnx | setnx key value | 当value不存在时采用赋值 set key value NX PX 3000 原子操作,px 设置毫秒数 |
append | append key value | 向尾部追加值 |
strlen | strlen key | 获取字符串长度 |
incr | incr key | 递增数字 |
incrby | incrby key increment | 增加指定的整数 |
decr | decr key | 递减数字 |
decrby | decrby key decrement | 减少指定的整数 |
### --- 应用场景:
~~~ key和命令是字符串
~~~ 普通的赋值
~~~ incr用于乐观锁
~~~ incr:递增数字,可用于实现乐观锁 watch(事务)
~~~ setnx用于分布式锁
~~~ 当value不存在时采用赋值,可用于实现分布式锁
### --- 举例:
setnx
[root@linux123 bin]# ./redis-cli -h 127.0.0.1 -p 6379
127.0.0.1:6379> setnx name zhangf # 如果name不存在赋值
(integer) 1
127.0.0.1:6379> setnx name zhaoyun # 再次赋值失败
(integer) 0
127.0.0.1:6379> get name
"zhangf"
### --- set
127.0.0.1:6379> set age 18 NX PX 10000 # 如果不存在赋值 有效期10秒
OK
127.0.0.1:6379> set age 20 NX # 赋值失败
(nil)
127.0.0.1:6379> get age # age失效
(nil)
127.0.0.1:6379> set age 30 NX PX 10000 # 赋值成功
OK
127.0.0.1:6379> get age
"30"
Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
——W.S.Landor
分类:
bdv012-redis
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通