通过SET指令设置指定字符串的值,通过 GET 指令获取该字符串的值。
127.0.0.1:6379> set website '51blog.xyz'
OK
127.0.0.1:6379> get website
"51blog.xyz"
字符串键值对常用的缓存场景,缓存键存在有效期的概念,redis可以在设置缓存键值的时候,通过额外的EX参数指定有效期(单位:秒)。
127.0.0.1:6379> set website '51blog.xuz2' ex 3
OK
127.0.0.1:6379> get website
"51blog.xuz2"
127.0.0.1:6379> get website
(nil)
除了字符串格式的值外,还支持数字格式的值,我们可以利用这个特性实现计数器的场景,比如:浏览数、购买数、点赞数等。
可以使用INCR命令来初始化对应的键值,以及自增1。
127.0.0.1:6379> incr site_visits
(integer) 1
127.0.0.1:6379> get site_visits
"1"
127.0.0.1:6379> incr site_visits
(integer) 2
127.0.0.1:6379> get site_visits
"2"
127.0.0.1:6379> incr site_visits
(integer) 3
127.0.0.1:6379> get site_visits
"3"
127.0.0.1:6379> incr site_visits
(integer) 4
127.0.0.1:6379> incr site_visits
(integer) 5
127.0.0.1:6379> get site_visits
"5"
以使用INCRBY命令来自定义设置自增步长。
127.0.0.1:6379> incrby site_visits 5
(integer) 10
127.0.0.1:6379> get site_visits
"10"
DECR / DECRBY
127.0.0.1:6379> set orders_count 100
OK
127.0.0.1:6379> get orders_count
"100"
127.0.0.1:6379> decr orders_count
(integer) 99
127.0.0.1:6379> get orders_count
"99"
127.0.0.1:6379> decrby orders_count 5
(integer) 94
127.0.0.1:6379> get orders_count
"94"
集合拥有确定性、互异性、无序性。
互异性:集合中所有元素都是互异的,即任意一个元素都是唯一的,当我们尝试向集合中添加相同元素时,会忽略后续添加的值。
127.0.0.1:6379> sadd dev_type 'php'
(integer) 1
127.0.0.1:6379> sadd dev_type 'php'
(integer) 0
127.0.0.1:6379> sadd dev_type 'java'
(integer) 1
127.0.0.1:6379> sadd dev_type 'php'
(integer) 0
127.0.0.1:6379> smembers dev_type
1) "php"
2) "java"
无序性:当你向 skills 集合添加多个元素时,返回的结果和添加时的排序并不一致。
127.0.0.1:6379> smembers dev_type
1) "php"
2) "java"
127.0.0.1:6379>
127.0.0.1:6379>
127.0.0.1:6379> sadd dev_type 'golang'
(integer) 1
127.0.0.1:6379> smembers dev_type
1) "php"
2) "golang"
3) "java"
列表可以包含重复元素,列表内元素的顺序和添加时的顺序一致。
127.0.0.1:6379> lrange skills 0 -1
1) "PHP"
2) "JavaScript"
127.0.0.1:6379> lpush skills 'PHP'
(integer) 3
127.0.0.1:6379> lrange skills 0 -1
1) "PHP"
2) "PHP"
3) "JavaScript"
默认会根据score数值的升序排序。
127.0.0.1:6379> zadd sorted_skills 0 'php'
(integer) 1
127.0.0.1:6379> zadd sorted_skills 1 'Javascript'
(integer) 1
127.0.0.1:6379> zadd sorted_skills 2 'golang'
(integer) 1
127.0.0.1:6379> zrange sorted_skills 0 2
1) "php"
2) "Javascript"
3) "golang"
zrevrange 返回基于score排序字段的降序排序结果。
127.0.0.1:6379> zrange sorted_skills 0 -1
1) "php"
2) "Javascript"
3) "golang"
127.0.0.1:6379> zrevrange sorted_skills 0 -1
1) "golang"
2) "Javascript"
3) "php"
127.0.0.1:6379> hset student.1 name 'lilei'
(integer) 1
127.0.0.1:6379> hset student.1 class '7'
(integer) 1
127.0.0.1:6379> hset student.1 grade 'A'
(integer) 1
127.0.0.1:6379> hmset student.2 name 'hanmeimei' class 7 grade 'B'
OK
127.0.0.1:6379> hkeys student.1
1) "name"
2) "class"
3) "grade"
127.0.0.1:6379> hvals student.1
1) "lilei"
2) "7"
3) "A"
127.0.0.1:6379> hget student.1 name
"lilei"
127.0.0.1:6379> hmget student.2 name grade
1) "hanmeimei"
2) "B"
127.0.0.1:6379> hmget student.2 name grade class
1) "hanmeimei"
2) "B"
3) "7"
127.0.0.1:6379> hgetall student.1
1) "name"
2) "lilei"
3) "class"
4) "7"
5) "grade"
6) "A"
🔥BuildAdmin是一个永久免费开源,无需授权即可商业使用,且使用了流行技术栈快速创建商业级后台管理系统。