常用命令(Hash)
「这是我参与11月更文挑战的第6天,活动详情查看:2021最后一次更文挑战」
什么是redis的hash数据结构?
- redis的hash数据结构,和其实就是string的升级版,它把string数据结构的key value,中的value类型升级为hash,和java的hash一样的结构。
Map<String, HashMap<String,Object>> hash=new HashMap<String,HashMap<String,Object>>();
复制代码
- 每个hash的存储大小: 可以存储 2的(32 - 1)方的 键值对(40多亿)
hash结构经典场景:存储java对象
把一个Product对象,存储进redis的hash结构
@Data
public class Product {
//商品id
private Long id;
//商品名称
private String name;
//商品价格
private Integer price;
//商品详情
private String detail;
}
复制代码
hset-设置值
语法:hset key field value
将哈希表 key 中的字段 field 的值设为 value 。
127.0.0.1:6379> hset product:100 name iphone11
(integer) 1
复制代码
hget-获取值
语法:hget key field
获取存储在哈希表中指定字段的值。
127.0.0.1:6379> hget product:100 name
"iphone11"
复制代码
hmset-批量添加
语法:hmset key field1 value1 [field2 value2 ]
同时将多个 field-value (域-值)对设置到哈希表 key 中。
127.0.0.1:6379> hmset product:100 price 5000 detail "I love iphone"
OK
复制代码
hmget-批量获取
语法:hmget key field1 [field2 field3 ...]
获取所有给定字段的值
127.0.0.1:6379> hmset product:100 price 5000 detail "I love iphone"
OK
127.0.0.1:6379> hmget product:100 name price detail
1) "iphone11"
2) "5000"
3) "I love iphone"
复制代码
hkeys-获取hash中所有field值
语法:hkeys key
获取指定hash中所有field值
127.0.0.1:6379> hkeys product:100
1) "name"
2) "price"
3) "detail"
复制代码
hvals-获取hash中所有value值
语法:hvals key
获取指定hash中所有value值
127.0.0.1:6379> hvals product:100
1) "iphone11"
2) "5000"
3) "I love iphone"
复制代码
hgetall-获取hash中所有field、value值
语法:hgetall key
获取指定hash中所有field、value值
127.0.0.1:6379> hgetall product:100
1) "name"
2) "iphone11"
3) "price"
4) "5000"
5) "detail"
6) "I love iphone"
复制代码
hlen-获取hash中元素的个数
语法:hlen key
获取指定hash中元素的个数
127.0.0.1:6379> hlen product:100
(integer) 3
复制代码
hincrby-整数加法
语法:hincrby key field data(整数)
给指定 field 对应的 value 值加上 data 数值
127.0.0.1:6379> hincrby product:100 price 100
(integer) 5100
127.0.0.1:6379> hgetall product:100
1) "name"
2) "iphone11"
3) "price"
4) "5100"
5) "detail"
6) "I love iphone"
复制代码
hincrbyfloat-浮点数加法
语法:hincrbyfloat key field data(浮点数)
给指定 field 对应的 value 值加上 data 数值
hexists-检查field是否存在
语法:hexists key field
检查指定的field是否存在
127.0.0.1:6379> hexists product:100 name
(integer) 1
复制代码
hdel-删除一个或多个哈希表字段
语法:hdel key field1 [field2 fiedl3 ...]
删除一个或多个哈希表字段
127.0.0.1:6379> hdel product:100 name
(integer) 1
127.0.0.1:6379> hgetall product:100
1) "price"
2) "5100"
3) "detail"
4) "I love iphone"
复制代码
redis分布式缓存系列
- redis分布式缓存(一)一一 redis安装(linux和docker)
- redis分布式缓存(二)一一 RDB和AOF
- redis分布式缓存(三)一一 SpringBoot集成Mybatis-Plus,Redis和Swagger
- redis分布式缓存(四)一一 SpringCache集成Redis
- redis分布式缓存(五)一一 常用命令(String)
- redis分布式缓存(六)一一 文章的阅读量PV解决方案
- redis分布式缓存(七)一一 分布式全局id解决方案
- redis分布式缓存(八)一一 高并发原子性操作(Redis+Lua)
- redis分布式缓存(九)一一 黑客防刷攻击解决方案
- 文章持续更新中...




近期评论