Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
在JavaWeb开发中,我们通常使用redis做缓存,将数据库的查询结果暂存于redis中。
redis的数据类型包含(内容来自菜鸟教程):
在这里插入图片描述
我们这里讲解下yum源下redis如何安装,顺便说下主从模式的安装过程。然后讲下简单的使用命令。
**如果大家正在寻找一个java的学习环境,或者在开发中遇到困难,可以<a
href="https://jq.qq.com/?_wv=1027&k=52sgH1J"
target="_blank">
加入我们的java学习圈,点击即可加入
</a>
,共同学习,节约学习时间,减少很多在学习中遇到的难题。**
yum安装很简单,不需要自己make install了,我本人是很讨厌make了,好麻烦。。
windows就不说了,redis官方都没有下载地址,https://github.com/microsoftarchive/redis/releases,这里虽然有windows版本,但是已经遗弃了,最新版本只有3.2的。
查看yum库中的redis:
yum search redis
如果没有,安装fedora的epel仓库:yum install epel-release
重新search将会看到redis相关的软件,我们安装redis.x86_64
yum install redis.x86_64
2.2 查看版本redis-cli --version
或者
redis-server --version
查看redis-cli还是redis-server版本一致的,因为是同时安装的。2.3 启动service redis start
service redis restart
2.5 关闭service redis stop
/etc/redis.conf 文件是redis的默认配置文件。
输入:redis-cli
,进入redis的命令行模式下,就可以操作redis了。
如果要远程连接,可以加上参数:redis-cli -h 192.168.0.49 -p 6379
在redis-cli命令行下测试:
设置test值:set test 1
获取test值:get test
/etc/redis.conf中,配置redis默认监听127.0.0.1,这将导致无法在非本机机器上访问redis。因此需要改变这个配置
打开redis.conf文件:view redis.conf
定位bind:非编辑模式下,输入/bind
,搜索bind字符串位置,然后找到bind 127.0.0.1,改为bind 0.0.0.0,这样所有机器都能连接到redis。
在这里插入图片描述
官网地址:https://redisdesktop.com/download
官网竟然不是免费的,我开始怀疑我下载的是不是破解版了,所以我把本机的打个包放到百度云上了:
链接:https://pan.baidu.com/s/14zGMsQ6-3pS5BdTUKGgwZQ
提取码:rugh
打开后,左上角或者左下角(版本不同位置不同,我的是在左上角)一个大大的连接到redis服务器,连接后可以查看redis信息:
在这里插入图片描述
注意,如果redis禁用了全局命令,那双击就不能打开树状数据图,要用redis命令行了。
上面说了怎么安装redis,并改变redis的端口,如果我们想建主从模式集群,是很简单的。
比如安装上面的访问建了一个redis节点,我们当它是master(ip:172.17.0.2 端口:6379).
按照上面的访问,在一台新机器上建一个redis节点,比如机器为172.17.0.3 端口仍为6379.
同样的方式启动,使用redis-cli测试集群,即在redis-cli命令行下输入info replication:
在这里插入图片描述
可以看出,当前节点是孤立的。将172.17.0.3 节点改为slave:
slaveof 172.17.0.2 6379
; 将自己作为172.17.0.2的从节点。service redis restart
注意bind的ip是不是开放ip,如果是127.0.0.1,那两个节点是无法互通的。
如下面所示,分别是master和slave机器上在redis-cli命令行下输入info replication:
在这里插入图片描述
在master的redis-cli命令行下输入:
set pomit testget pomit
可以正常拿到值。
在slave的redis-cli命令行下输入:
get pomit
也可以正常拿到pomit值。3.2.2 测试从写在slave的redis-cli命令行下输入:set pomitcn test
报错:(error) READONLY You can't write against a read only slave.
因为从节点一般是用来读的。
redis的命令太多了,每种数据结构都有自己的命令,这里只说下普通字符串的操作,因为我们一般都不会去用命令行操作。
设置key1的值:set key1 value1
整型key自增:incr key1
整型key自减:decr key1
设置key1的过期时间(单位秒): EXPIRE key1 10
获取key1的值:get key1
判断key1是否存在:exists key1
查看所有key:keys *
或者scan 0
查看某个key:keys key1
获取key1键值的长度:strlen key1
更新key1的值:set key1 value2
删除key1:del key1