1. 简介
Redis是一个key-value的存储系统,它的key是字符串类型,value的类型有八种(steam类型是Redis5.0新增的一种)。Redis种命令是忽略大小写的,key是不忽略大小写的。
其中value的数据类型有:
常用的:string字符串类型、list列表类型、set集合类型、sortedset(zset)有序集合类型、hash类型。
不常用的:bitmap位图类型、geo地理位置类型、steam类型。
2. Redis的key的设计
- 用:分割
- 把表名转换为key的前缀,比如"user:"
- 第二段放主键值
- 第三段放置列名
例如做如下设置:
在Redis Desktop Manager这款Redis可视化管理工具中,只有使用单个:分隔的key名称,层次看起来更直观:
3. Redis的value的数据类型
3.1 string字符串类型
Redis的字符串类型能表达三种值的类型:
- 字符串
- 整数
- 浮点数
应用场景:
- key和命令是字符串
- 普通的赋值
- incr用于乐观锁
incr : 递增数字,可用于实现乐观锁watch(事务) - setnc用于分布式锁
当value不存在时采用复制,可用于实现分布式锁
常见操作命令:
命令名称 | 命令格式 | 描述 |
---|---|---|
set | set key value | 赋值 |
get | getkey | 取值 |
getset | getset key value | 取值并赋值 |
setnx | setnx key value | 当key不存在时才赋值 set key value NX PX 3000原子操作,PX设置毫秒数 |
append | appendkey value | 向尾部追加值 |
strlen | strlen key | 获取字符串长度 |
incr | incr key | 递增数字 |
incrby | incrby key increment | 增加指定的整数 |
decr | decr key | 递减数字 |
decr | decr key decrement | 减少指定的整数 |
例子:
setnx :
使用setnx命令,如果key不存在则赋值成功,key存在则赋值失败。
127.0.0.1:6379> setnx name jack
(integer) 1
127.0.0.1:6379> setnx name tom
(integer) 0
127