Linux安装Redis-7.0.0

本文详细介绍了如何在CentOS7.0环境下安装Redis 7.0,包括下载、解压、编译、安装及启动过程,并展示了Redis的基本命令操作。此外,还提到了Redis 7.0的新特性,如SSL支持和新的RESP3协议等。文章最后提供了使用Java Jedis连接Redis的示例代码,并给出了Linux环境下通过YUM快速安装Redis的方法。
摘要由CSDN通过智能技术生成

Redis全称Remote Dictionary Server,即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。

目前Redis 7.0引入了SSL、新的 RESP3 协议、ACL、客户端缓存、无盘副本、I/O 线程、更快的RDB加载、新模块API和更多改进。
 

一、准备工作

操作系统:CentOS 7.0,基于VM虚拟机安装在WIN11平台下

1.1 下载Redis客户端

Redis官方网站:Download | Redis         Redis中文官方网站:CRUG网站 (redis.cn)

1、下载redis6.2.6安装包

访问https://redis.io/download地址到官网进行下载,本文已最新版redis6.2.6版本演示安装和配置。

 可以直接通过上图的Redis官网平台下载安装包,下载后的安装包要通过FTP工具上传到linux环境下,这里我使用Linux自带的命令行工具下载省去了FTP上传的操作,如下:

# 通过命令行下载
wget http://download.redis.io/releases/redis-7.0.0.tar.gz
--2022-05-08 11:05:26--  http://download.redis.io/releases/redis-7.0.0.tar.gz
Resolving download.redis.io (download.redis.io)... 45.60.125.1
Connecting to download.redis.io (download.redis.io)|45.60.125.1|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 2943054 (2.8M) [application/octet-stream]
Saving to: ‘redis-7.0.0.tar.gz’
100%[============================================================================================================================================================>] 2,943,054   4.02MB/s   in 0.7s   
2022-05-08 11:05:27 (4.02 MB/s) - ‘redis-7.0.0.tar.gz’ saved [2943054/2943054]
# 检查下载文件是否成功
[root@huxing software]# ll -l
total 2876
-rw-r--r--. 1 root root 2943054 Apr 27 21:46 redis-7.0.0.tar.gz
[root@huxing software]# 
# 解压到本地
[root@huxing software]# tar -zxvf redis-7.0.0.tar.gz
# 拷贝解压后的安装文件到目录下
[root@huxing local]# cp -r /home/software/redis-7.0.0 /usr/local/
[root@huxing local]# cd redis-7.0.0/
[root@huxing redis-7.0.0]# ls
00-RELEASENOTES  CONDUCT       COPYING  INSTALL   MANIFESTO  redis.conf  runtest-cluster    runtest-sentinel  sentinel.conf  tests   utils
BUGS             CONTRIBUTING  deps     Makefile  README.md  runtest     runtest-moduleapi  SECURITY.md       src            TLS.md
[root@huxing redis-7.0.0]# 

redis简单命令

官网下载redis安装包。拖到redis目录下

用命令解压 例如 tar xzf redis-6.2.6.tar.gz

cd redis

然后输入命令

make

如果报错

yum install -y gcc g++ gcc-c++ make
make MALLOC=libc
在make
再报错
yum -y install centos-release-scl
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
scl enable devtoolset-9 bash
echo "source /opt/rh/devtoolset-9/enable" >> /etc/profile
gcc -v

再输入

make install

报错就输入sudo

make install

redis-server         启动redis

 出现就成功了!!!

ps -ef|grep redis    检查redis是否启动
redis-server         启动redis
Select 【数字】       转到第几个数据库
Dbsize               查看当前数据库有多少个key
Keys *               当前库的key查询出来
Flushdb              清除当前库
Flushall             清除所有库
Auth 【密码】         认证密码
Exists【key的名字】   判断某个key是否存在
Move key 【db序号】   将当前库的key剪切到指定db序号
Expire key【时间秒】  为给定的key设置过期时间,过期后会移除系统
Ttl key              查看还有多少秒过期,-1表示永远不过期,-2表示已过期
Type key             查看你的key是什么类型
Del key              删除key

string类型

Set key value                        设置key,value
Get key                              获得值key对应的value的值
Strlen key                           获得key对应的value的长度
Incr key                             对key对应的value的值自增1
Incrby key 【数字】                   指定数字递增
Decr key                             对key对应的value的值自减1
Decrby key 【数字】                   指定数字递减
Getrange key 0 -1                    显示指定范围的key对应的value值(0到-1显示全部)Setrange key 0 x                     从零开始,修改原来的值,将原来的修改;原来为“10”执行后                                         为“x0”
Setex key 【过期时间秒】 value        设置值的同时给定过期时间
Setnx key value                      若key不存在,设置value值才会成功
Mset key value key value key value   一次性设置多个值
Mget key key key                     一次性获得多个值
Msetnx key value key value           一次性设置多个之前不存在的值,若其中有一个key存在的话就不                                       会成功

list类型

Lpush key value value value                     存值,结果先进后出
Rpush key value value value                     存值,结果按顺序,先进先出
Lrange key 0 -1                                 查看list中的数据(0到-1显示全部)
Lpop key                                        出栈,从左到右,每次出栈一个元素,相当于从                                                   list中删除
Rpop key                                        出栈,从右到左,每次出栈一个元素,相当于从                                                   list中删除
Lindex key 【下标】                              具体显示list中角标对应的值,从0开始计数Lrem key 【数字】 【元素】                             删除list中几个相同的元素
Ltrim key 【下标1】【下标2】                      截取出保存下标1到下标2的元素,其他下标对应的                                                 元素被删除
Lset key 【下标】 【元素】                        修改list数字中对应下标的元素
Linsert key before/after 【元素1】【元素2】       在元素1的前面/后面 插入元素2,若元素1有多个,则只对最前面的那个匹配元素1的元素的前后进行操作

set类型

Sadd key 【元素1】【元素2】【元素3】         一次性添加多个元素,会自动去重
Smembers key                              查看当前key中的所有元素
Scard key                                 获取元素个数
Srem key 【元素】【元素】【元素】            删除指定元素
Srandmember key 【数字】                   在指定的set中随机的显示三个数字
Spop key 【数字】                          随机出栈指定的个数个元素
Smove key1  key2 【key1中的元素】          将key1中的元素剪切到key2中
Sdiff  key1 key2                          显示出存在于set1中但不存在于set2中的元素
Sinter key1 key2                          显示出key1和key2共同拥有的元素      交集
Sunion key1 key2                          显示出key1和key2两者相加的所有元素  并集

hash类型

Hset  hash key1 value1 key2 value2                 设置值,hash允许重复 当key重复的时候会覆                                                     盖前面出现的key
Hget hash key                                      获取value
Hgetall hash                                       获取所有的key和value
Hmset hash  key1  value1  key2  value2             一次存一个对象的多个不同的value
Hdel hash key                                      删除指定的key
Hlen hash                                          查看长度
Hexists hash key                                   判断hash中key是否存在
Hkeys  hash                                        获取所有的key值
Hvals hash                                         获取所有的value值
Hincrby hash key 【整数数字】                       指定的key按指定的数字递增
Hincrbyfloat hash key 【小数】                      指定的key按指定的小数递增
Hsetnx hash key value                              若key值在hash中不存在就添加

zset类型

zset(key value)                             key值必须是数字(key为序号,依据此序号来排序)
Zadd zset key1 value1 key2 value2              一次性添加多个数据
Zrange zset 0 -1                               显示所有的value值,当范                                                                  围为 0 到 -1 时显示全部,下标从0开始
Zrange zset 0 -1 withscores                   现在所有的key和value,当范围为 0 到 -1 时显                                                 示全部,下标从0开始
Zrangebyscore zset 【key1】【key2】             显示key1到key2之间的key的值(包含数字1和数                                                    字2) 数字2比数字1大
Zrangebyscore zset 【(key1】【key2】             显示key1到key2之间的key的值(加了前括号就                                                   不包含改数字)
zrangebyscore zset 【key1】【key2】 limit【key3】【数字4】 从结果中截取key3开始截取                                                         数字4 个元素
Zrem zset value1 value2 value3                  删除指定的key中的value
Zcard zset                                       统计zset中key的个数
Zcount zset 【key1】【key2】                      统计key1到key2之间的key个数
Zrank zset value                                 通过value的值value所在的下标
Zscore zset value                                获取key的值
Zrevrank zset value                                显示倒叙过来的下标
Zrevrange zset 0 -1                               倒叙显示所有
valueZrevrangbyscore zset [key1] [key2]            倒叙显示key1到key2的之间的value值

idea中使用redis

<dependency>
    <groupId>redis.clients</groupId>
    <artifactId>jedis</artifactId>
    <version>3.2.0</version>
</dependency>
 
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.62</version>
</dependency>

测试连接

import redis.clients.jedis.Jedis;

public class RedisTest { public static void main(String[] args) { //连接本地的 Redis 服务 Jedis jedis = new Jedis("服务器地址", 6379); String response = jedis.ping(); System.out.println(response); // PONG }

}

使用string

import redis.clients.jedis.Jedis;

import java.util.Set;

public class Redis_String {
public static void main(String[] args) {
    //连接本地的 Redis 服务
    Jedis jedis = new Jedis("服务器地址", 6379);
    String response = jedis.ping();
    System.out.println(response); // PONG
 
    //删除当前选择数据库中的所有key
    System.out.println("删除当前选择数据库中的所有key:"+jedis.flushDB());
 
    //Spring实例
 
    //设置 redis 字符串数据
    //新增<'name','yixin'>的键值对
    jedis.set("name", "yixin");
    // 获取存储的数据并输出
    System.out.println("redis 存储的字符串为: "+ jedis.get("name"));
 
    //判断某个键是否存在
    System.out.println("判断某个键是否存在:"+jedis.exists("name"));
 
    //系统中所有的键
    Set<String> keys = jedis.keys("*");
    System.out.println(keys);
 
    //按索引查询
    System.out.println("按索引查询:"+jedis.select(0));
 
    //查看键name所存储的值的类型
    System.out.println("查看键name所存储的值的类型:"+jedis.type("name"));
 
   // 随机返回key空间的一个
    System.out.println("随机返回key空间的一个:"+jedis.randomKey());
    //重命名key
    System.out.println("重命名key:"+jedis.rename("name","username"));
    System.out.println("取出改后的name:"+jedis.get("username"));
 
    //删除键username
    System.out.println("删除键username:"+jedis.del("username"));
 
    //删除当前选择数据库中的所有key
    System.out.println("删除当前选择数据库中的所有key:"+jedis.flushDB());
    //查看当前数据库中key的数目
    System.out.println("返回当前数据库中key的数目:"+jedis.dbSize());
 
    //删除数据库中的所有key
    System.out.println("删除所有数据库中的所有key:"+jedis.flushAll());
 
}

使用list

import redis.clients.jedis.Jedis;

import java.util.List;

public class Redis_List {
public static void main(String[] args) {
    //连接本地的 Redis 服务
    Jedis jedis = new Jedis("服务器地址", 6379);
    String response = jedis.ping();
    System.out.println(response); // PONG
 
  System.out.println("删除当前选择数据库中的所有key:"+jedis.flushDB());
 
    //List实例
    //存储数据到列表中
    jedis.lpush("list", "num1");
    jedis.lpush("list", "num2");
    jedis.lpush("list", "num3");
    
    // 获取存储的数据并输出
    List<String> list = jedis.lrange("list", 0 ,-1);
    for(int i=0; i<list.size(); i++) {
        System.out.println("列表项为: "+list.get(i));
    }
}

使用事务

import com.alibaba.fastjson.JSONObject;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.Transaction;

public class Redis_Transaction {
public static void main(String[] args) {
    //连接本地的 Redis 服务
    Jedis jedis = new Jedis("服务器地址", 6379);
    String response = jedis.ping();
    System.out.println(response); // PONG
 
    //事务测试
    jedis.flushDB();
    JSONObject jsonObject = new JSONObject();
    jsonObject.put("hello","world");
    jsonObject.put("name","yixin");
 
    //开启事务
    Transaction multi = jedis.multi();
    String result = jsonObject.toJSONString();
    // jedis.watch(result)
    try {
        multi.set("user1", result);
        multi.set("user2", result);
        int i = 1 / 0; // 代码抛出异常事务,执行失败!
        multi.exec(); // 执行事务!
 
    }catch (Exception e){
        multi.discard();// 放弃事务
        e.printStackTrace();
    }finally {
        System.out.println(jedis.get("user1"));
        System.out.println(jedis.get("user2"));
        jedis.close();
    }
}

安装redis稳定版!!!!!!! 

在linux环境下直接复制一下代码 (无需去官方手动下载资源)

1. 安装 redis
# 添加软件安装源
yum install epel-release
# 安装 redis
yum install redis -y
# 启动 redis 、启动 redis 哨兵
systemctl start redis
# 允许开机启动
systemctl enable redis
# 之后进行配置修改:重启启动服务
2. 修改 redis.conf 配置
# 主机修改 redis 配置文件: /etc/redis.conf
# 1. 修改绑定 ip 为服务器内网 ip 地址,做绑定,三台各自填写各自的 ip 地址
bind 192 .168.50.150
# 2. 保护模式修改为否,允许远程连接
protected-mode no
# 4. 设定密码
requirepass ok
# 5. 设定主库密码与当前库密码同步,保证从库能够提升为主库
masterauth ok
# 6. 打开 AOF 持久化支持
appendonly yes

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kjshuan

点个赞就好啦!!!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值