一、为什么使用 Redis?
-
Redis 是开源的内存中的数据结构存储系统,它可以用作数据库、数据缓存和消息中间件。
-
它支持多种类型的数据结构,如 字符串strings, 散列 hashes, 列表 lists, 集合 sets, 有序集合 sorted sets 与范围查询, bitmaps, hyperloglogs 和 地理空间(geospatial) 索引半径查询。
-
Redis 还内置了 复制(replication),LUA脚本(Lua scripting), LRU驱动事件(LRU eviction),事务(transactions) 和不同级别的磁盘持久化(persistence), 并通过 Redis哨兵(Sentinel)和自动 分区(Cluster)提供高可用性(high availability)
-
支持数据的备份,即 master-slave 模式的数据备份。
-
运行时数据和状态都保存在内存中,支持数据的持久化。
可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用等等。
二、Redis在项目中的应用场景
- 1、缓存数据
最常用,对经常需要查询且变动不是很频繁的数据 常称作热点数据。 - 2、消息队列
相当于消息订阅系统,比如ActiveMQ、RocketMQ。如果对数据有较高一致性要求时,还是建议使用MQ。 - 3、计数器
比如统计点击率、点赞率,Redis具有原子性,可以避免并发问题。 - 4、电商网站信息
大型电商平台初始化页面数据的缓存。比如去哪儿网购买机票的时候首页的价格和你点进去的价格会有差异。 - 5、热点数据
比如新闻网站实时热点、微博热搜等,需要频繁更新。总数据量比较大的时候直接从数据库查询会影响性能。
三、redis部署
1、在 redis官网 下载安装包到本地主机上,上传到centos7虚拟机中。
官网链接:https://redis.io/download
//关闭防火墙
systemctl stop firewalld
setenforce 0
//安装
yum install -y gcc gcc-c++ make
//解压安装包,make编译
tar zxvf redis-5.0.7.tar.gz -C /opt/
cd /opt/redis-5.0.7/
make
make PREFIX=/usr/local/redis/ install
[root@promote redis-5.0.7]# cd utils/ #一直回车到最后只修改路径
[root@localhost utils]# ./install_server.sh
Welcome to the redis service installer
This script will help you easily set up a running redis server
Please select the redis port for this instance: [6379]
Selecting default: 6379
Please select the redis config file name [/etc/redis/6379.conf] //定义主配置文件
Selected default - /etc/redis/6379.conf
Please select the redis log file name [/var/log/redis_6379.log] //定义日志文件
Selected default - /var/log/redis_6379.log
Please select the data directory for this instance [/var/lib/redis/6379] //数据文件
Selected default - /var/lib/redis/6379
Please select the redis executable path [] /usr/local/redis/bin/redis-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!
//查看服务状态,服务已经开启
[root@promote utils]# netstat -natp | grep 6379
tcp 0 0 127.0.0.1:6379 0.0.0.0:* LISTEN 22999/redis-server
//创建软链接,优化服务
ln -s /usr/local/redis/bin/* /usr/local/bin/
//进入redis数据库
vim /etc/redis/6379.conf
#行尾模式输入bind
bind 127.0.0.1 192.168.100.129 绑定本机IP地址重启服务即可
//重启服务
service redis_6379 restart
Stopping ...
Redis stopped
Starting Redis server...
//登录数据库
[root@localhost ~]# redis-cli -h 192.168.100.129 -p 6379 //-h指定地址,-p指定端口
192.168.43.101:6379>
四、redis数据库的命令操作
1、远程登录redis数据库命令
redis-cli -h 192.168.100.129 -p 6379 //-h指定地址,-p指定端口
2、键值key-value的管理
格式:
创建键:set 键名 值
删除键:del 键名
获取键对应的值:get 键名
获取当前数据库的所有键:keys
3、数据库的切换
格式:
切换到某库:select 库名
移动当前库中的键值到另一个库:move 键名 库名
五、数据库的性能测试
示例:测试数据库的 get 功能命令如下
redis-benchmark -h 192.168.100.129 -p 6379 -t get -c 50 -n 10000
-h 指服务器的地址
-p 服务端口
-c 并发连接数
-n 请求总数