简介
- 存储的数据:单个数据,最简单的数据存储类型,也是最常用的数据存储类型
- 存储数据的格式:一个存储空间保存一个数据
- 存储内容:通常使用字符串,如果字符串以整数的形式展示,可以作为数字操作使用
数据结构
Redis 的字符串是动态字符串,是可以修改的字符串,采用预分配冗余空间的方式来减少内存的频繁分配。内部为当前字符串实际分配的空间 capacity 一般要高于实际字符串长度 len。
- 当字符串长度小于 1M 时,扩容都是加倍现有的空间;
- 如果超过 1M,扩容时一次只会多扩 1M 的空间。
常用命令
单条操作
增:set key value
查:get key
删:del key
多条操作
增:mset key1 value1 [key2 value2 ....]
查:mget key1 [key2 ....]
其他命令
获取字符串长度:strlen key
有则追加,无则新建:append key value
不存在就设置,存在就不设置:setnx key value
自增 1:incr key
指定int数值自增,正加负减:incrby key num
给float数值自增:incrbyfloat key num
自减 1:decr key
自减num:decrby key num
设置key的值为value存活时间为second秒:setex key second value
设置key的值为value存活时间为millisecond毫秒:psetex key millisecond value
注意事项
- 数据未获取到 (nil)===> 等同于null
- 数据最大存储量 512MB
- 数值计算最大范围(java中的long的最大值) 9223372036854775807 <===>Long.MAX_VALUE
命名约定
- 使用冒号 : 作为redis key中的分级,不想Java中使用小驼峰或下划线
使用场景
- 为数据库表主键提供生成策略,保障数据库表的主键唯一性 。不使用数据库中的自增策略,使用redis的incr命令做自增。
- 高热度数据访问加速 (实时热度、访问数等)
- JSON 序列化成字符串