目录
一、Redis缓存框架基本介绍
Redis 是完全开源免费的,是一个高性能的key-value数据库,目前市面上主流的数据库
Redis、Memcache、Tair(淘宝自研发)
Redis的官网:https://redis.io/
二、Redis的应用场景
1.Token令牌的生成
2.短信验证码Code
3.缓存查询数据
4.网页计数器
5.分布式锁
6.延迟操作
三、Redis单线程模型
首先Redis官方是没有windows版本的,只有redis版本
Redis的底层采用Nio中的多路IO复用的机制,能够非常好的支持这样的并发,从而保证线程安全问题;
Redis单线程,也就是底层采用一个线程维护多个不同的客户端io操作。
但是Nio在不同的操作系统上实现的方式有所不同,在我们windows操作系统使用select实现轮训时间复杂度是为o(n),而且还存在空轮训的情况,效率非常低, 其次是默认对我们轮训的数据有一定限制,所以支持上万的tcp连接是非常难。
所以在linux操作系统采用epoll实现事件驱动回调,不会存在空轮训的情况,只对活跃的 socket连接实现主动回调这样在性能上有大大的提升,所以时间复杂度是为o(1)
注意:windows操作系统是没有epoll,只有linux系统才有epoll
Redis底层采用nio epoll实现
四、linux环境安装Redis
1.上传Redis的安装包
redis-5.0.6.tar.gz
2.解压我们的Redis安装包
tar -zxvf redis-5.0.6.tar.gz
3.创建rediss目录
mkdir /usr/redis
4.预编译一下rediss安装文件
make install PREFIX=/usr/redis
5.启动Redis
cd /usr/redis/bin ./redis-server
五、环境核心配置
1. 将Redis设置为后台启动
- 将配置文件复制到启动目录中
cp /usr/redis-5.0.6/redis.conf /usr/redis/bin
- 进入到
/usr/redis/bin
目录,在redis.conf中设置daemonize yes
vi redis.conf
- 重新启动Redis
./redis-server ./redis.conf
- 查看进程是否启动成功
ps aux | grep 'redis'
2. 设置Redis账号密码
3. 设置Reids允许ip访问
redis默认只允许通过127.0.0.1来进行访问
systemctl stop firewalld
- 重启redis
- 用Redis Desktop Manager测试链接(Redis Desktop Manager v0.8.8.384点击下载)
六、Redis默认的情况下分为16个库
七、Redis数据结构
String类型、Hsh类型、List类型、Set类型 、Sorted-Sets
1. String类型
String是redis最基本的类型,一个key对应一个value,string类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象, String类型是Redis最基本的数据类型,一个键最大能存储512MB。
set name demo
get name
2. Hsh类型
我们可以将Redis中的Hash类型看成具有<key,<key1,value>>,其中同一个key可以有多个不同key值的<key1,value>,所以该类型非常适合于存储值对象的信息。如Username、Password和Age等。如果Hash中包含很少的字段,那么该类型的数据也将仅占用很少的磁盘空间。
HMSET demo zhangsan 18
HGETALL demo
3. List类型
Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)
LPUSH demolist xiaowang xiaochao xiaodan
LRANGE demolist 0 10
4. Set类型
Redis 的 Set 是 String 类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。
Redis 中集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。
SADD demoset xiaowang xiaowang01 xiaowang02
SMEMBERS demoset
5. Sorted-Sets
Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员。
不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。
有序集合的成员是唯一的,但分数(score)却可以重复。
集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。 集合中最大的成员数为 232 – 1 (4294967295, 每个集合可存储40多亿个成员)。
ZADD demosets 1 demo01
ZADD demosets 1 demo01
ZADD demosets 1 demo02
ZRANGE demosets 0 10 WITHSCORES
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/131247.html