Redis第一弹-简单入门详细总结

168 阅读3分钟

一、redis 简介

1、简介
  1. 基于key-value 形式进行存储的内存型数据库,由于数据存储在内存中,因此效率很高,每秒10k数据读取
  2. redis是一个Nosql数据库 ,所谓Nosql就是not only sql ,表示不是必须在开发中使用关系型数据库,可以使用Nosql替代关系型数据库的部分功能,目前Nosql不能完全替代关系型数据库,使用关系型数据库结合Nosql数据库进行完成项目
  • 当数据比较复杂时,不适合用Nosql数据库
  • 关系型数据库依然作为数据存储的主要软件
  • Nosql数据库当做缓存工具来使用
  1. redis解决了什么问题?

常作为缓存数据库使用,查询数据的时候,先从Redis中查,查询不到再从mysql中查询,多用于命中率较高的数据查询。从而提高了查询效率

2、持久化
  1. rdb

rdb是redis默认的持久化策略,每隔一定时间后把内存中数据持久化到dump.rdb文件中

缺点:

  • 数据过于集中
  • 可能导致最后的数据没有持久化到dump.rdb文件中,解决办法:使用命令SAVE或者BGSAVE手动持久化
  1. aof

    监听redis的日志文件,监听如果发现执行了修改、删除、新增命令,立即根据这条命令将数据持久化

二、redis命令手册

  1. 命令手册地址:doc.redisfans.com/
  2. 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问题的时候,参考以下文章

  1. centos7 防火墙和端口配置(为了连接redis)blog.csdn.net/fuqianming/…
  2. 远程无法连接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显示结果:

2、jedis 操作redis(获取key的value值)

3、增删改操作: