一、redis 简介
1、简介
- 基于key-value 形式进行存储的内存型数据库,由于数据存储在内存中,因此效率很高,每秒10k数据读取
- redis是一个Nosql数据库 ,所谓Nosql就是not only sql ,表示不是必须在开发中使用关系型数据库,可以使用Nosql替代关系型数据库的部分功能,目前Nosql不能完全替代关系型数据库,使用关系型数据库结合Nosql数据库进行完成项目
- 当数据比较复杂时,不适合用Nosql数据库
- 关系型数据库依然作为数据存储的主要软件
- Nosql数据库当做缓存工具来使用
- redis解决了什么问题?
常作为缓存数据库使用,查询数据的时候,先从Redis中查,查询不到再从mysql中查询,多用于命中率较高的数据查询。从而提高了查询效率
2、持久化
- rdb
rdb是redis默认的持久化策略,每隔一定时间后把内存中数据持久化到dump.rdb文件中
缺点:
- 数据过于集中
- 可能导致最后的数据没有持久化到dump.rdb文件中,解决办法:使用命令SAVE或者BGSAVE手动持久化
-
aof
监听redis的日志文件,监听如果发现执行了修改、删除、新增命令,立即根据这条命令将数据持久化
二、redis命令手册
- 命令手册地址:doc.redisfans.com/
- redis数据类型:String、Hash、List、Set、OrderSet 有序集合
三、安装redis
一、安装
windows系统安装:
1、Github下载地址:github.com/MSOpenTech/…
2、下载完之后启动redis服务
redis-server.exe redis.windows.conf
3、开启redis-cli客户端
redis-cli.exe -h 127.0.0.1 -p 6379
Linux系统安装:
- 系统:cenos 7.0
- redis版本:6.0.5
如果不知道自己之前装没装redis,可以通过以下命令查找:
whereis redis
我将redis安装到了/opt/tools目录下:
二、配置
使用以下的命令将redis.conf 复制到/usr/local/bin 目录下
cp redis.conf /usr/local/bin
使用vim修改redis.conf文件
vim redis.conf
这里将daemonize属性设置为yes是为了让redis服务在后台运行,避免人为的不小心的触碰到ctrl+c导致的redis进程退出
四、使用rdm工具连接redis
如果遇到无法连接到redis问题的时候,参考以下文章
- centos7 防火墙和端口配置(为了连接redis)blog.csdn.net/fuqianming/…
- 远程无法连接redis解决方案:blog.csdn.net/fly43108622…
主要是需要解除保护模式和放行redis端口
最终连接成功的样子:
服务器端:
rdm客户端连接:
五、设置redis密码
进入到/usr/local/bin 下面的redis.conf文件里面查找到下面这一行去掉注释:
然后将后面的fooboard改成自己的密码即可
启动客户端命令:
./redis-cli -a 密码
关闭redis客户端:
./redis-cli -a 你设置的密码 shutdown
完整的启动客户端命令:
./redis-cli -h 主机ip -p 端口号 -a 密码
六、启动redis服务命令:
./redis-server redis.conf
七、关闭redis服务命令
./redis-cli shutdown
可能在关闭服务的时候会出现以下问题:
解决方法:
进入redis.conf文件里面找到logfile,指定log文件,我设置的是/usr/local/bin目录下的redis-log.log
2、继续执行./redis-cli shutdown 依然还是报刚才那错误,这个时候日志文件有了内容,查看下显示已经开启了一个6379端口
3、查询redis进程的进程号杀掉重启服务即可
ps -ef | grep -i redis //查看redis进程
kill -9 进程号 //杀掉进程
八、maven项目使用jedis操作redis
问题1:编写完测试方法之后运行,出现以下错误
解决方法:将redis.conf文件的stop-writes-on-bgsave-error 由yes设置成no
1、jedis操作redis(新增key-value)
测试结果:
rdm显示结果: