Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持。从2013年5月开始,Redis的开发由Pivotal赞助。
NoSQL
NoSQL——non-relational SQL,非关系型数据库。非关系型数据库的存储方式、存储结构以及使用场景都是完全不同的。随着网络发展,关系型数据库在应对海量数据以及高并发的网络服务时遇到相关的问题:
1)无法满足对数据库的高并发读写需求
2)无法满足对海量数据高效存储与访问
3)无法满足数据库的高可用与高扩展性
Redis 简介
Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。
Redis 与其他 key - value 缓存产品有以下三个特点:
- Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
- Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
- Redis支持数据的备份,即master-slave模式的数据备份。
Redis 优势
- 性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s 。
- 丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。
- 原子 – Redis的所有操作都是原子性的,意思就是要么成功执行要么失败完全不执行。单个操作是原子性的。多个操作也支持事务,即原子性,通过MULTI和EXEC指令包起来。
- 丰富的特性 – Redis还支持 publish/subscribe, 通知, key 过期等等特性。
Redis应用场景
- 用来做缓存(ehcache/memcached)——redis的所有数据是放在内存中的(内存数据库)
- 可以在某些特定应用场景下替代传统数据库——比如社交类的应用
- 在一些大型系统中,巧妙地实现一些特定的功能:session共享、购物车
- 只要你有丰富的想象力,redis可以用在可以给你无限的惊喜…….
类型 | 部分代表
| 特点 |
列存储 | Hbase Cassandra Hypertable | 顾名思义,是按列存储数据的。最大的特点是方便存储结构化和半结构化数据,方便做数据压缩,对针对某一列或者某几列的查询有非常大的IO优势。 |
文档存储 | MongoDB CouchDB | 文档存储一般用类似json的格式存储,存储的内容是文档型的。这样也就有有机会对某些字段建立索引,实现关系数据库的某些功能。 |
key-value存储 | Tokyo Cabinet / Tyrant Berkeley DB MemcacheDB Redis | 可以通过key快速查询到其value。一般来说,存储不管value的格式,照单全收。(Redis包含了其他功能) |
图存储 | Neo4J FlockDB | 图形关系的最佳存储。使用传统关系数据库来解决的话性能低下,而且设计使用不方便。 |
对象存储 | db4o Versant | 通过类似面向对象语言的语法操作数据库,通过对象的方式存取数据。 |
xml数据库 | Berkeley DB XML BaseX | 高效的存储XML数据,并支持XML的内部查询语法,比如XQuery,Xpath。 |
Redis编译安装
1、获取安装包资源解压以及安装编译工具
hostnamectl set-hostname redis_install_install
yum install gcc gcc-c++ make -y
2、编译安装
tar zxvf redis_install-5.0.7.tar.gz -C /opt
make #直接进行make
make PREFIX=/usr/local/redis_install/ install #指定redis_install目录并安装,安装过程中,更改安装路径可以用make PRRFIX=安装路径 install
cd /usr/local/redis_install/
ls
bin
cd bin/
ls #redis_install的相关命令工具
redis-benchmark redis-check-rdb redis-sentinel
redis-check-aof redis-cli redis-server#redis-cli是连接终端
cd /opt/redis-5.0.7/utils/ #回到redis_install源码包解压目录
./install_server.sh #执行脚本进行配置:端口、配置文件目录、日志文件目录等
Welcome to the redis service installer
This script will help you easily set up a running redis_install serverPlease select the redis port for this instance: [6379] #选择redis_install默认端口,直接回车
Selecting default: 6379
Please select the redis config file name [/etc/redis_install/6379.conf] #选择redis_install默认配置文件名称,直接回车
Selected default - /etc/redis/6379.conf
Please select the redis_install log file name [/var/log/redisl_6379.log] #选择默认redis日志文件名称,直接回车
Selected default - /var/log/redis_6379.log
Please select the data directory for this instance [/var/lib/redi/6379] #选择默认接口的默认数据文件,直接回车
Selected default - /var/lib/redis/6379
Please select the redis_install executable path [] /usr/local/redis_install/bin/redis_install-server #选择redis_install可执行文件路径,需要手动输入此路径:/usr/local/redis_install/bin/redis_install-server
Selected config: #查看配置清单
Port : 6379
Config file : /etc/redis/6379.conf
Log file : /var/log/redis_6379.log
Data dir : /var/lib/redis/6379
Executable : /usr/local/redis/bin/redis-server
Cli Executable : /usr/local/redis/bin/redis-cli
Is this ok? Then press ENTER to go on or Ctrl-C to abort. 确认无误后直接回车完成配置
Copied /tmp/6379.conf => /etc/init.d/redis_6379
Installing service...
Successfully added to chkconfig!
Successfully added to runlevels 345!
Starting redis server...
Installation successful!
3、优化配置与登录
ln -s /usr/local/redis_install/bin/* /usr/local/bin #将redis命令创建软连接,便于系统识别
netstat -ntap |grep 6379
tcp 0 0 127.0.0.1:6379 0.0.0.0:* LISTEN 26085/redis_install-server
vim /etc/redis/6379.conf #修改配置文件
bind 127.0.0.1 20.0.0.133 #添加本机ip作为监听对象
/etc/init.d/redis_6379 restart #重启redis服务
Stopping ...
redis stopped
Starting redi server...
redis-cli -h 20.0.0.133 -p 6379 #成功登陆
20.0.0.133:6379> exit #退出
参考
https://www.linuxidc.com/Linux/2020-04/162999.htm