一、Linux环境安装&启动Redis
1. 安装步骤
第一步:在官网下载好Redis安装包,上传到Linux中并进行解压到相应(如/opt/software/)目录中;(注意:完成了第二步后,即安装了C/C++语言编译器后,再进行解压,否则执行make编译命令时会报错有个目录没有!)
第二步:执行如下命令,安装C/C++语言编译器;(官网下载的Redis安装包是需要编译后才可以安装的,而Redis是用C/C++语言编写的,CentOS7是没有安装这两款编译器的,所以需要先安装这两款编译器)
yum -y install gcc gcc-c++
执行以上命令时,报错找不到镜像。以下为解决方案:
(1)首先,根据百度AI给出的上面图片中的方法执行后,再执行上面安装编译器的命令还是报错,报错信息为:Cannot find a valid baseurl for repo: base/7/x86_64 ;
(2)然后,根据下面两篇文章的内容,又执行命令 ping 114.114.114.114 能ping通,说明电脑可以上网;再执行
nslookup www.baidu.com
(或ping www.baidu.com
)发现无法解析或连接,说明是DNS配置的问题。(3)针对DNS配置问题的解决步骤依次为:
- 进入目录 cd /etc/sysconfig/network-scripts/
- 打开该目录下的文件并编辑
vi ifcfg-ens33
- 新加一行,如下图:
- 重启网络:systemctl restart network.service
- 再次执行
ping www.baidu.com
时,发现OK了。最后再安装编译器就没问题了。
参考文章:
centos7 yum安装使用时提示 cannot find a valid baseurl for repo:base/7/x86_64 的解决方法(亲测有效☆)_cannot find a valid baseurl for repo: base/7/x86_6-CSDN博客
Linux 用yum安装软件提示 cannot find a valid baseurl for repo:base/7/x86_64 的解决方法_cannot find a valid baseurl for repo: base/7/x86_6-CSDN博客
安装好编译期之后,执行下面命令就可以查看到gcc的版本了。
gcc -v
第三步:进入已解压的Redis根目录下,执行make命令进行编译,当看到下图时表示编译成功;
第四步:还是在根目录下,执行make install命令进行安装,看到如下图片表示安装成功。
Redis的默认安装目录是/usr/local/bin,如下图。
通过执行echo $PATH 可以看到,/usr/local/bin目录是存在于该系统变量中的,这样这些命令就可以在任意目录中执行了。
另外,以下的图片“安装常见问题”来源于马士兵李瑾老师:
2. 启动
Redis有三种方法启动Redis:默认配置、带参数启动、配置文件启动。
1)默认配置启动
前台启动命令:.bin/redis-server
后台启动命令:nohup redis-server &
2)带参数启动
redis-server加上要修改配置名和值(可以是多对),没有设置的配置将使用默认配置,例如:如果要用6380作为端口启动Redis,那么可以执行:./redis-server --port 6380
3)配置文件启动(推荐)
生产环境用的这种。通常可以复制一下配置文件redis.conf,然后在这个文件中修改自己的配置。
# myredis-conf这个文件夹是新建的
[root@centos105 redis6]# cp redis.conf myredis-conf/
查看Redis进程是否启动的命令:
4)配置文件属性解读&修改
# daemonize属性值由no改为yes,使Redis进程以守护进程方式运行
daemonize no
# 指定 Redis 监听端口,默认端口为 6379
port 6379
# 下面这行代码注释掉,protected-mode属性改为no,其他主机也能够访问了;或者设置为bind *
# bind 127.0.0.1 -::1
bind *
# protected-mode默认是yes保护模式
protected-mode no
# 通过requirepass这个属性可以设置访问Redis的密码,默认不需要密码
# requirepass foobared
# 当客户端闲置多长时间后关闭连接(单位:秒),如果指定为0表示永远不超时
timeout 0
# 配置日志的级别。共4个级别,由低到高依次为:debug/verbose/notice/warning
loglevel notice
# 设置数据库的数量,默认是使用0号数据库
databases 16
# 设置Redis可并发处理的客户端连接数量,默认是1万
# maxclients 10000
# 设置内存使用的最大字节数。当达到内存限制时,将根据maxmemory-policy删除符合条件的key
# maxmemory <bytes>
# 移除内存的策略,共8种策略。noeviction表示不移除任何内容,只是在写操作时返回一个错误
# maxmemory-policy noeviction
将myredis-conf/redis.conf配置文件做以下修改后,使用配置文件启动:
daemonize no
# bind 127.0.0.1 -::1
protected-mode no
[root@centos105 redis6]# redis-server myredis-conf/redis.conf
扩展:Redis key的8种移除策略
- volatile-lru -> Evict using approximated LRU, only keys with an expire set.(使用近似LRU算法移除key,仅用于设置了过期时间的key)
- allkeys-lru -> Evict any key using approximated LRU.(使用近似LRU算法移除key,适用于所有类型的key)
- volatile-lfu -> Evict using approximated LFU, only keys with an expire set.
- allkeys-lfu -> Evict any key using approximated LFU.
- volatile-random -> Remove a random key having an expire set.(移除任意设置了过期时间的key)
- allkeys-random -> Remove a random key, any key.(随机移除一个key)
- volatile-ttl -> Remove the key with the nearest expire time (minor TTL)
- noeviction -> Don't evict anything, just return an error on write operations.
LRU:Least Recently Used(最近最少使用)
LFU:Least Frequently Used(最不常用)
3. 停止
使用如下命令进行停止:
redis-cli -p 6379 shutdown
二、Redis客户端的使用
Redis客户端也像MySQL客户端一样有多种分类:命令行客户端(redis-cli),图形界面客户端,Java代码客户端。下面介绍Java代码客户端和图形界面客户端。
2.1 Java代码客户端
其实就是一套操作Redis的API,其作用就像JDBC一样,所以Java代码客户端其实就是一个或多个jar包,提供了对Redis的操作接口。对Redis操作的API很多,如jdbc-redis、jredis等,但最常用的也是最有名的是Jedis。
2.2 图形界面客户端
(1)Redis Desktop Manager
该软件原来免费,从0.8.8版本后变为收费的。官网:https://resp.app/
原来的官网是 http://redisdesktop.com
(2)RedisPlus
开源免费的。官网:https://gitee.com/MaxBill/RedisPlus
(3)RedisInsight (推荐)
Redis有两个网站,开源免费的是 https://redis.io,企业收费的是 https://redis.com。去收费的官网下载RedisInsight