什么是Redis?
Redis是以Key-value形式存储,和传统的关系型数据库不一样,不一定遵循传统数据库的一些基本要求(非关系型的、分布式的、开源的、水平可扩展的)。它是以Key-value 形式存储,非关系型数据结构服务器。键可以包含:(string)字符串,哈希,(list)链表,(set)集合,(zset)有序集合。这些数据集合都支持push/pop、add/remove及取交集和并集以及更丰富的操作,redis支持各种不同的方式排序,为了保证效率,数据都是缓存在内存中,它也可以周期性的把更新的数据写入到磁盘或者把修改操作写入追加到文件中。
官网:https://redis.io/
目前最高版本:4.0.9
优点:
- 对数据高并发读写
- 对海量数据的高效存储和访问
- 对数据的可扩展性和高可用性
- 操作都是原子性
- 支持丰富的数据类型
缺点:
- redis(ACID处理非常简单)
- 无法做到太复杂的关系数据库模型
![b2e1897871d63b420377c56645005429.png](https://i-blog.csdnimg.cn/blog_migrate/8d5391b4b247de1585c7a2bb1044bbc5.jpeg)
Redis安装
将程序安装在/usr/local下,默认端口6379;
- 安装步骤:[root@iZ11tny01f4Z ~]#cd /usr/local;[root@iZ11tny01f4Z ~]# wget http://download.redis.io/releases/redis-4.0.9.tar.gz;[root@iZ11tny01f4Z ~]# tar xzf redis-4.0.9.tar.gz;[root@iZ11tny01f4Z ~]# cd redis-4.0.9;[root@iZ11tny01f4Z ~ redis-4.0.9]# make; make install;编译成功;启动并运行redis;[root@iZ11tny01f4Z ~ redis-4.0.9]# src/redis-server打开另外一个终端运行redis客户端;[root@iZ11tny01f4Z ~ redis-4.0.9]# src/redis-cli
- 说明:make install命令执行完成后,会在/usr/local/bin目录下生成本个可执行文件,分别是redis-server、redis-cli、redis-benchmark、redis-check-aof 、redis-check-dump,它们的作用如下:
- redis-cli:Redis命令行操作工具。也可以用telnet根据其纯文本协议来操作;
- redis-benchmark:Redis性能测试工具,测试Redis在当前系统下的读写性能;
- redis-check-aof:数据恢复;
- redis-check-dump:检查导出工具;
![e354a359d7562947cbe45aaf0b57210b.png](https://i-blog.csdnimg.cn/blog_migrate/4408f4f5b6aec827400bc98575c4fa23.jpeg)
Redis配置
- 修改系统配置文件,执行命令:
- echo vm.overcommit_memory=1 >> /etc/sysctl.conf
- sysctl vm.overcommit_memory=1 或执行echo vm.overcommit_memory=1 >>/proc/sys/vm/overcommit_memory
- 使用数字含义:
- 0,表示内核将检查是否有足够的可用内存供应用进程使用;如果有足够的可用内存,内存申请允许;否则,内存申请失败,并把错误返回给应用进程
- 1,表示内核允许分配所有的物理内存,而不管当前的内存状态如何
- 2,表示内核允许分配超过所有物理内存和交换空间总和的内存
- 修改redis配置文件:
- 移动conf文件: cp /usr/local/redis-4.0.9/redis.conf /etc/.
- 修改conf文件:vi /etc/redis.conf 修改daemonize yes---目的使进程在后台运行
- 参数介绍:
- daemonize:是否以后台daemon方式运行
- pidfile:pid文件位置
- port:监听的端口号
- timeout:请求超时时间
- loglevel:log信息级别
- logfile:log文件位置
- databases:开启数据库的数量
- requirepass 密码 # 配置redis连接的密码(配置密码后,客户端连上服务器,需要先执行授权命令 # auth 密码),生成环境最好是配置个密码,然后最下IP绑定,否则很容易被当成肉机被攻击,踩过这个坑,所以特地提一下
- save * *:保存快照的频率,第一个*表示多长时间,第三个*表示执行多少次写操作。在一定时间内执行一定数量的写操作时,自动保存快照。可设置多个条件
- rdbcompression:是否使用压缩
- dbfilename:数据快照文件名(只是文件名,不包括目录)
- dir:数据快照的保存目录(这个是目录)
- appendonly:是否开启appendonlylog,开启的话每次写操作会记一条log,这会提高数据抗风险能力,但影响效率
- appendfsync:appendonlylog如何同步到磁盘(三个选项,分别是每次写都强制调用fsync、每秒启用一次fsync、不调用fsync等待系统自己同步)
![4437f505c989e5b56cc705d89acde903.png](https://i-blog.csdnimg.cn/blog_migrate/b8662430ef9a6da748db807787923c7c.jpeg)
Redis启动
启动redis:# redis-server /etc/redis.conf
检查是否启动成功:# ps -ef | grep redis(列出Redis进程号)
停止redis服务:# redis-cli shutdown
把redis作为Linux服务开机启动:# vi /etc/rc.local 在其中加入以下一行代码:/usr/local/redis-4.0.9/src/redis-server /etc/redis.conf
![ccbbe6d78d57d8a0157baf1474fd8eaa.png](https://i-blog.csdnimg.cn/blog_migrate/c4bc8b06205ae45ea4afbfffd1d1d6a1.jpeg)
桌面管理工具
redis-desktop-manager-0.9.1 官网:https://redisdesktop.com/download