本文是好久之前参考网上大佬教程,边学习边参考边做笔记,整理的内容,分享下大家学习~
如果这位大佬看见,请评论留下您的名字和博客地址,我这里修改为【转载】
目录
什么是Redis
Redis(Remote Dictionary Server) 是一个使用 C 语言编写的,开源的高性能非关系型(NoSQL)的键值对数据库。
与传统数据库不同的是 Redis 的数据是存在内存中的,所以读写速度非常快,因此 redis 被广泛应用于缓存方向,每秒可以处理超过 10万次读写操作。
Redis 是K-V型的数据库,整个数据库都是用字典来存储的,对Redis数据库的任何增删改查操作,实际上就是对字典中的数据进行增删改查
1. 可以存储海量数据,且可以根据键以O(1) 的时间复杂度取出或插入关联值
2. 键值对中键的类型可以是字符串,整型,浮点型等,且键是唯一的.
3. 键值对中的值类型可以是string, hash ,list, set, sorted set.
快速入门-5大数据类型+使用场景
1. string 字符串
string是Redis 使用最广泛,也是最简单的数据结构,Redis所有的key也是string类型,业务系统中通常会把业务数据序列化成一个json 字符串,然后存储到Redis中缓存起来,下次访问的时候,再取出来,反序列化供业务端使用
可通过 help 查看字符串操作命令
127.0.0.1:6379> help @string
since: 2.6.0
常用命令
K-V 缓存:
指定key, value 完成设置于取值操作:
127.0.0.1:6379> set name guojia
OK
127.0.0.1:6379> get name
"guojia"
127.0.0.1:6379> set some_key some_value
OK
127.0.0.1:6379> get some_key
"some_value"
如上操作,至少进行了两次网络请求,网络的利用率不高,如果有多个键值对,可以用如下优化
127.0.0.1:6379> mset name1 zhangsan name2 lisi name3 wangwu
OK
127.0.0.1:6379> mget name1 name2 name3
1) "zhangsan"
2) "lisi"
3) "wangwu"
默认情况下,没有给key设置过期时间,如果配置了持久化的话,数据将永久存在,可以通过设置过期时间,
# 10s 后, name1 将被失效
127.0.0.1:6379> expire name1 10
(integer) 1
数值计算
127.0.0.1:6379> set readCount 1
OK
127.0.0.1:6379> incr readCount
(integer) 2
127.0.0.1:6379> decr readCount
(integer) 1
127.0.0.1:6379> incrby readCount 10
(integer) 11
127.0.0.1:6379> decrby readCount 5
(integer) 6