Linux服务器配置Redis

这篇博客详细介绍了如何在Linux服务器上配置Redis,包括安装GCC环境、编译安装Redis、启动和配置Redis服务、开启守护进程,以及针对不同Redis版本的操作。同时,讲解了Redis的数据类型如字符串、哈希、列表、集合和有序集合,以及如何使用Java、Spring和SpringBoot进行Redis操作。最后提到了Redis可视化工具的下载链接。
摘要由CSDN通过智能技术生成
1. 安装gcc环境
1.1 yum -y install gcc-c++
2. Redis安装
2.1 cp redis-5.0.7.tar.gz /usr/local
2.2 cd /usr/local
2.3 tar -zxvf redis-5.0.7.tar.gz
3. 编译redis源码(进入到Reids目录)
3.1 cd /usr/local/redis-5.0.7
3.2 make
4. 安装redis
4.1 make install PREFIX=/usr/local/redis5  -- 指定安装到某个路径下面
5. 启动redis
5.1 cd /usr/local/redis5/bin
5.2 ./redis-server
5.3 Ctrl+C  然后退出
6.开放端口6379
6.1 vim /usr/lib/firewalld/services/ssh.xml
	     <port protocol="tcp" port="6379"/>
7. 把redis.conf复制到redis5里面去
7.1 cd /usr/local/redis-5.0.7
7.2 cp ./redis.conf /usr/local/redis5/bin/
8. 开启守护后台
8.1 cd /usr/local/redis5/bin
8.2 vim redis.conf
			:set number   

在这里插入图片描述

这里弄的是redis低版本
8.3  改成daemonize yes     (开启后台线程)
8.4 :wq    (保存并退出)

在这里插入图片描述

这里弄的是redis高版本
8.3.1  改成daemonize yes   (开启后台线程)
8.3.2 # bind 127.0.0.1  (redis的低版本默认没有设置仅限本机访问,而高版本有设置,所以需要将高版本的本机绑定注释掉)

在这里插入图片描述
在这里插入图片描述

8.3.3  requirepass root (安全加固-设置Redis的访问密码)

在这里插入图片描述

8.3.4 :noh 	(取消高亮)
8.4 :wq    (保存并退出)
这里是改完redis.conf配置 的
8.5 ./redis-server redis.conf		(后台启动redis)
8.6 ps -ef | grep redis
8.7 ./redis-cli      (进入redis进行操作)
8.8 auth root			(这里是有设置访问密码的才用)
这里是开启安全加固要弄的

在这里插入图片描述

9. redis的字符串(string)
set  值名  值
get 值名 
keys *
mset  值名  值   值名  值
mget 值名  值名  
flushdb     (清空)

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

10. redis的哈希(hash)
hset 表名  值名  值
hget 表名 值名  值
hgetall 表名
hdel 表名 值名

在这里插入图片描述
在这里插入图片描述

11. redis的列表(List)
lpush 列名 值 值 值			(从左边加) 
rpush 列名 值 值 值				(从右边加)
lrange  列名  0 -1          (查看列里的所有)
lpop 列名					(左弹)
rpop 列名					(右弹)
lrem	 列名 个数  值       (根据列里面的值删除多少个数)
llen 列名			(查列表的长度)
lindex 列名 索引
lset 列名 索引 替换的值

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

11. redis的集合(set)
sadd 表名 值 值 值
scard  表名     (查长度)
smembers 表名  (查表名里的所有值)
sismember 表名 值名		(查看值在不在)
spop 表名 

在这里插入图片描述

12. redis的有序集合(zset)
zadd 表名 数值 值  	
zrange 表名 0 -1 (查询表里的所有)

在这里插入图片描述

13. redis的事务
multi    	(开启事务)
exec			(提交事务)
discard		(事务回滚)
watch 	表名		(监听某些键,当被监听的键在提交事务前被修改,则事务会回滚 (基于乐观锁机制))
unwatch		(取消监听)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

停止redis服务(这里只是说明,不是真的要停止服务)

./redis-cli			(进去redis)
	shutdown

java操作redis
1. 创建maven项目
1.1 导依赖
<dependencies>
    <dependency>
        <groupId>redis.clients</groupId>
        <artifactId>jedis</artifactId>
        <version>2.9.0</version>
    </dependency>

    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
    </dependency>
</dependencies>
1.2 在Test层创建一个JedisTest类
import org.junit.Test;
import redis.clients.jedis.Jedis;

/**
 * @Author: wenchaowen
 * @Date: 2020/4/11 0011 16:06
 * @Descripton:
 */
public class JedisTest {

    @Test
    public void testJedis(){

        //1.连接Redis
        Jedis jedis = new Jedis("101.37.175.1",6379);

        jedis.auth("root");

        //2.添加一个键值对
        jedis.set("name","admin");


        //3.获取
        String name = jedis.get("name");

        System.out.println("name = " + name);

        jedis.close();

    }

}
2. spring操作redis
2.1 创建Maven项目
2.2 导依赖
<dependencies>

    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>

    <dependency>
        <groupId>org.springframework.data</groupId>
        <artifactId>spring-data-redis</artifactId>
        <version>1.8.8.RELEASE</version>
    </dependency>

    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-test</artifactId>
        <version>4.3.8.RELEASE</version>
    </dependency>

    <dependency>
    <groupId>redis.clients</groupId>
    <artifactId>jedis</artifactId>
    <version>2.9.0</version>
    </dependency>

    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.18.12</version>
    </dependency>

</dependencies>
2.3 创建一个spring config的beans.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

    <!--1.创建一个连接的对象-->
    <bean id="poolConfig" class="redis.clients.jedis.JedisPoolConfig">
        <!-- 最大空闲数 -->
        <property name="maxIdle" value="50" />
        <!-- 最大连接数 -->
        <property name="maxTotal" value="100" />
        <!-- 最大等待时间 -->
        <property name="maxWaitMillis" value="20000" />
    </bean>

    <!-- 2.配置redis连接工厂 -->
    <bean id="connectionFactory"
          class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory">
        <!-- 连接池配置 -->
        <property name="poolConfig" ref="poolConfig" />
        <!-- 连接主机 -->
        <property name="hostName" value="101.37.175.1" />
        <!-- 端口 -->
        <property name="port" value="6379" />
        <!-- 密码 -->
        <property name="password" value="root" />
    </bean>

    <!-- 3.配置redis模板对象 -->
    <bean class="org.springframework.data.redis.core.RedisTemplate">
        <!-- 配置连接工厂 -->
        <property name="connectionFactory" ref="connectionFactory" />



        <property name="keySerializer" ref="stringRedisSerializer"></property>
        <!-- 配置Redis key系列化方式为spring
       <property name="valueSerializer" ref="stringRedisSerializer"></property>
   -->
    </bean>

    <bean id="stringRedisSerializer" class="org.springframework.data.redis.serializer.StringRedisSerializer"></bean>

</beans>
2.4 创建User类
package com.qf.entity;

import lombok.Data;

import java.io.Serializable;

/**
 * @Author: wenchaowen
 * @Date: 2020/4/11 0011 19:45
 * @Descripton:
 */
@Data
public class User implements Serializable {

    private static final long serialVersionUID = 4821987350346984317L;
    private Integer id ;

    private String username;

}
2.5 在test层创建SpringRedisTest类
import com.qf.entity.User;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.ValueOperations;
import org.springframework.data.redis.serializer.StringRedisSerializer;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

/**
 * @Author: wenchaowen
 * @Date: 2020/4/11 0011 17:44
 * @Descripton:
 */
@RunWith(value = SpringJUnit4ClassRunner.class)
@ContextConfiguration(value = "classpath:beans.xml")
public class SpringRedisTest {

    @Autowired
    private RedisTemplate redisTemplate;

    /**
     * 演示字符串的操作
     */
    @Test
    public void testString(){

        //key和value采用字符串的序列化方式
        redisTemplate.setKeySerializer(new StringRedisSerializer());
        redisTemplate.setValueSerializer(new StringRedisSerializer());
        //ValueOperations : 操作字符串的
        //ValueOperations : 默认使用的是JDK的序列化方式

        ValueOperations valueOperations = redisTemplate.opsForValue();

        //设置键值对
        valueOperations.set("name","qfAdmin"); //进去序列化
        valueOperations.set("username","张三");

        //根据key获取value值
        Object name = valueOperations.get("name"); //查询反序列
        Object username = valueOperations.get("username");

        System.out.println("name = " + name);
        System.out.println("username = " + username);

    }

    @Test
    public void testAddUser(){
        ValueOperations valueOperations = redisTemplate.opsForValue();

        //1.创建一个对象
        User user = new User();
        user.setId(10);
        user.setUsername("qfAdmin");

        //2.添加到redis中
        valueOperations.set("user",user);

        //3.获取
        User user1 = (User) valueOperations.get("user");
        System.out.println("user1 = " + user1.getUsername());

    }


}
3. springboot 操作redis

在这里插入图片描述

redis可视化工具
百度网盘
链接:https://pan.baidu.com/s/1STMrheA7WlAtXp83W_8dFQ
提取码:g6qr
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值