Redis 常用数据类型


Redis 常用数据类型

1.字符串(String)

127.0.0.1:6379> set k1 100OK
127.0.0.1:6379> get k1
"100"

append 将给定的追加到原值末尾

127.0.0.1:6379> set k4 v456
OK
127.0.0.1:6379> append k4 1
(integer) 5
127.0.0.1:6379> get k4
"v4561"
strlen <key>获得值的长度

setnx <key> <value> 只有在key 不存在时设置key的值

incr <key> 将key中存储的的数字加1,只能对数字值操作

decr <key> 将key中存储的的数字减1

incrby/decrby <key> <步长> 将key中存储的数字值增减。自定义步长

mset <key1> <value1> <key2> <value2> <key3> <value3>... 同时设置一个或多个key-value

mget <key1> <key2> ... 同时获取一个或多个value
127.0.0.1:6379> mset k1 v1 k2 v2 k3 v3
OK
127.0.0.1:6379> keys *
1) "k3"
2) "k2"
3) "k1"
127.0.0.1:6379> mget k1 k2 k3
1) "v1"
2) "v2"
3) "v3"
msetnx <key1> <value1> <key2> <value2> <key3> <value3>... 同时设置一个或多个key-value,当且仅当给定的key都不存在

getrange <key><起始位置><结束位置> 获取值的范围
127.0.0.1:6379> set name lucymary
OK
127.0.0.1:6379> getrange name 0 3
"lucy"
127.0.0.1:6379>

setex <过期时间> 设置键值的同时,设置过期时间,单位秒

127.0.0.1:6379> setex age 30 v111
OK
127.0.0.1:6379> ttl age
(integer) 20

2.列表(List)

redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部右边。它的底层实际是个双向链表,对两端的操作性能很高,通过索引下标的操作中间的节点性能较差。

lpush/rpush ....key><value1><value2><value3>..... 从左边/右边插入一个或多个值。

127.0.0.1:6379> lpush k1 v1 v2 v3
(integer) 3
127.0.0.1:6379> lrange k1 0 -1
1) "v3"
2) "v2"
3) "v1"

lpop/rpop <key> 从左边/右边吐出一个值。值在键在,值光键亡。

127.0.0.1:6379> lpop k1
"v3"
127.0.0.1:6379> rpop k1
"v1"

rpoplpush <key1><key2> 从列表右边吐出一个值,插到key2列表左边

127.0.0.1:6379> lpush k1 v1 v2 v3
(integer) 3
127.0.0.1:6379> rpush k2 v11 v12 v13
(integer) 3
127.0.0.1:6379> rpoplpush k1 k2
"v1"
127.0.0.1:6379> lrange k2 0 -1
1) "v1"
2) "v11"
3) "v12"
4) "v13"

lrange <key><start><stop> 按照索引下标 获取列表指定范围内的元素(从左到右)

lindex <key><index> 通过索引获取列表中的元素 llen 获取列表的长度 linsert <key> before/after <value> <newvalue> 在 的前面/后面插入插入值

127.0.0.1:6379> linsert k2 before v11 v110
(integer) 5
127.0.0.1:6379> lrange k2 0 -1
1) "v1"
2) "v110"
3) "v11"
4) "v12"
5) "v13"
127.0.0.1:6379>

127.0.0.1:6379> linsert k2 after v11 v111
(integer) 6
127.0.0.1:6379> lrange k2 0 -1
1) "v1"
2) "v110"
3) "v11"
4) "v111"
5) "v12"
6) "v13"
127.0.0.1:6379>

lrem <key><n><value> 从左边删除n个value lset <key><index><value> 将列表key下标为index的值替换为value

3.集合(Set)

sadd <key> <value1> <value2>...... 向集合添加一个或多个成员

https://www.runoob.com/redis/redis-sets.html

4.哈希(Hash)

Redis hash 是一个 string 类型的 field(字段) 和 value(值) 的映射表,hash 特别适合用于存储对象。Redis 中每个 hash 可以存储 232 - 1 键值对(40多亿)。类似java中的Map

https://www.runoob.com/redis/redis-hashes.html

5.有序集合

Redis 有序集合和集合一样也是 string 类型元素的集合,且不允许重复的成员。不同的是每个元素都会关联一个 double 类型的分数。redis 正是通过分数来为集合中的成员进行从小到大的排序。有序集合的成员是唯一的,但分数(score)却可以重复。集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。 集合中最大的成员数为 232 - 1 (4294967295, 每个集合可存储40多亿个成员)。

https://www.runoob.com/redis/redis-sorted-sets.html


Author: qwq小小舒
Reprint policy: All articles in this blog are used except for special statements CC BY 4.0 reprint policy. If reproduced, please indicate source qwq小小舒 !
  TOC