Redis数据结构之字符串、哈希结构常用命令

1、redis基本数据结构之字符串

string类型是Redis最基本的数据类型,以key-value的形式存储数据,string类型的值最大能存储512MB。
string类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象。

字符串常用基本命令如下表所示:

命令 说明 备注
set key value 设置键值对 最常用的写入命令。
get key 通过键获取value值 最常用的读取命令。
del key 通过key删除键值对 删除命令,返回删除数,需要注意的是:它是一个通用的命令,也就是说在其他数据结构中也可以使用。
strlen key 求key指向的字符串的长度 返回长度
getset key value 修改原来key对应的value值,并将旧值返回 如果原来的值为空,则返回空,并设置新值
getrange key start end 获取子串 记字符串长度为len,把字符串看成是一个数组,redis是以0开始计数的,因此start是从0开始,end是len-1。
append key value 追加字符串到原来的字符串的末尾 返回key指向的新字符串的长度。

可以使用flushdb删除redis中的存储内容,但是一定要慎用。

演示如下图所示:

如果存储的字符串是数字(整数或浮点数),redis还支持简单的运算,如加减法。
如下表所示:

命令 说明 备注
incr key 在原字段上加1 只能对整数操作
incrby key increment 在原字段上加上整数(increment) 只能对整数操作
decr key 在原字段上减1 只能对整数操作
decrby key increment 在原字段上减去整数(increment) 只能对整数操作
incrbyfloat key increment 在原字段上加上浮点数(increment) 可以操作浮点数或整数

演示如下:

2、redis基本数据结构之哈希

redis中哈希结构就如同java中map一样,一个对象里面有许多键值对,它是特别适合用来存储对象的,如果内存足够大,那么一个redis的哈希结构可以存储2的32次方-1个键值对(40多亿)。在redis中,hash是一个String类型的field和value的映射表。
映射表如下结构:

其中role_1代表的是这个hash结构在redis内存中的key,通过这个key就可以找到这个hash结构,而hash结构是由一系列的field和value组成的。
redis hash结构命令如下表所示:

命令 说明 备注
hdel key field1 [field2 ....] 删除hash结构中的某个(些)字段 可以进行多个字段的删除
hexists key field 判断hash结构中是否存在field字段 存在返回1,否则返回0
hgetall key 获取所有hash结构中的键值 返回键和值
hincr key field increment 指定给hash结构中的某个字段加上一个整数 要求该字段是一个整数字符串
hincrbyfloat key field increment 指定给hash结构中的某个字段加上一个浮点数 要求该字段是一个数字型字符串
hkeys key 返回hash中所有的键
hlen key 返回hash中键值对的数量
hmget key field1[field2...] 返回hash中指定的键的值,可以是多个 依次返回值
hmset key field1 value1[field2 value2] hash结构设置多个键值对
hset key field value 在hash结构中设置键值对 单个设置,m表示多个的意思
hsetnx key field value 当hash结构中不存在对应的键才设置值
hvals key 返回hash结构中所有的值

可以看出redis中hash结构和字符串结构有着明显的不同,hash结构命令是以h开头的表示hash结构,另外大多数命令多了一个field域,这是hash结构的一个内部键,也就是说redis需要通过key索引找到对应的hash结构,然后在通过field来确定使用hash结构的那个键值对。
演示如下所示:

posted @ 2020-06-01 21:47  jason小蜗牛  阅读(346)  评论(0编辑  收藏  举报