本人于2021年7月29号刚给咱们公司的小伙伴做了redis的技术分享,趁着还热乎,就赶忙整理了一下分享到博客来~
好啦~言归正传,嘻嘻~
(1)Redis的简介
NoSQL非关系型数据库中主要有Memcache、Redis、MongoDB,而Redis是非关系型数据库中一般用于缓存的一种数据库,不依赖于业务能力存储,而是简单的键值对形式存储的,Redis几乎覆盖了Memcached的绝大部分功能,数据都在内存中,支持持久化,主要用作备份恢复;除了支持简单的键值对形式,还支持多种数据结构的存储,比如它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)等,和Memcache区别在于Redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件。
(2)Redis的应用场景
- 配合关系型数据库做高速缓存,比如热门访问的数据,降低数据库IO
- 多样的数据结构存储持久化数据:通过List类型按时间排序的数据和构建队列;利用zset有序集合实现排行榜功能;利用有效期时间存储时效性的数据例如手机验证码;利用redis的原子性做计数器、秒杀等;利用Set集合去重大数据中的重复数据;利用pub/sub做发布订阅模式
(3)Docker安装Redis
安装的步骤我就不暂开介绍了,有需要的可以参考下:https://www.runoob.com/docker/docker-install-redis.html
我这边还装了docker-compose 的,配置文件如下:
配置文件写好之后,dokcer-compose 后台启动一下:
docker-compose up -d
查看下容器:
docker ps
启动成功了,进入redis客户端:
docker exec -it redis-single redis-cli
然后测试验证下redis:
最后eixt命令|ctrl+c 退出客户端:
(4)Redis相关知识介绍
- 端口号:6379
-
默认16个数据库,类似数组下标从0开始,初始默认使用0号库,切换库的命令:select 15
-
Redis是单线程+多路IO复用技术
- Redis是原子性的