• Redis的介绍及如何在Linux上安装redis、常用命令、Java连接操作Redis


    目录

    前言

     一、简介

     二、Linux上安装Redis

     1.解压redis

    ​编辑 2.安装gcc

     3.编译redis

     4.检测安装情况

    5.修改redis.conf文件

    6.启动redis

     7.测试redis启动是否成功

    三、Redis的常用命令

    1、Redis字符串(String)

    2、Redis哈希(Hash)

    3、Redis列表(List)

    4、Redis集合(Set)

    5、有序集合(sort set)

    四、Java连接操作Redis

    Java连接redis

    Java操作redis


    前言

    Redis用途:1. 数据库   2. 缓存
    集群:哨兵、主从、分片式

    一、简介

    Redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理。

    它支持字符串String、哈希表hash、列表list、集合set、有序集合zset(sort set),位图,hyperloglogs等数据类型。内置复制、Lua脚本、LRU收回、事务以及不同级别磁盘持久化功能,同时通过Redis Sentinel提供高可用,通过Redis Cluster提供自动分区。

    NoSQL数据库:Redis、ehcache、MongoDB

            是直接通过键值对的方式取值,数据之间不存在关系

    SQL数据库:SqlServer、Oracle、MySQL

            通过查询表的方式获取数据,数据之间存在关系,通过表联系

    作用:提升程序运行的效率

       学习网址:https://www.w3cschool.cn/redis/
       www.redis.cn
       www.redis.net.cn

    下载
    redis-5.0.0.tar.gz(linux)
    Redis-x64-3.2.100.msi(window安装版)
    Redis-x64-3.2.100.zip(window解压版)

     二、Linux上安装Redis

     首先将Redis安装包下载下来

    开启虚拟机⬇⬇⬇

    打开虚拟机连接工具⬇⬇⬇

     

     1.解压redis

    tar -zxvf redis-5.0.0.tar.gz -C 解压到当前目录

     2.安装gcc

    Redis安装完成后,需要安装gcc,redis与tomcat最大的不同就是 redis的使用需要gcc环境支持

     yum install gcc 安装命令

     安装前记得检查一下网络,如网速过慢,建议切换一个网络后再进行下载

     3.编译redis

    cd /redis-5.0.0  在这个目录下
    make

     4.检测安装情况

    make install

    5.修改redis.conf文件

     cp redis.conf redis_bak.conf
    将daemonize no 改为 daemonize yes

    当连接工具不能直接打开编辑器,那么需要通过 / + 查询关键字 快速定位单词所在位置,按 n 键下一个

     

    6.启动redis

    ./redis-server ../redis.conf   

    演示一个不推荐的启动方法⬇⬇⬇

     这样启动redis,就不可以执行其他命令了,不可以做事了,所以不推荐该方式

    如果我们想输入其他命令,Ctrl+C就可以了,但是刚启动的redis又被停掉了

     我们使用 守护进程 的方式启动,守护进程的作用就是当我启动完了,还可以输命令

    先将redis.conf备份 ,目的在于如果某一天想用最初版本,为那一天留后路

     

     守护进程启动方法,看到区别了不~~~

     7.测试redis启动是否成功

    ./redis-cli
    ping

    退出exit 

    使用Redis桌面管理器(RDM)连接一下端口,测试是否可以连接

    没连接上第一个原因是:端口没开放

                    第二个原因是:redis.conf里还缺少配置

     

     第一步将端口开放

    firewall-cmd --zone=public --add-port=6379/tcp --permanent

    跟新防火墙规则
    firewall-cmd --reload

     防火墙列表
    firewall-cmd --zone=public --list-ports

    修改redis.conf
    注释:bind 127.0.0.1
    修改:requirepass 123456 

     

     

        

    Esc+:wq保存并提出

    查看端口,此时该端口已在使用

     杀掉redis进程:kill -9 进程pid

        连上了

     小结:①上传并解压redis.gz

                ②yum install -y gcc

                ③进入 redis 的解压目录,执行命令make

                ④修改redis为守护进程

                ⑤开放6379的端口

                ⑥授权,允许运程链接

    之前我们链接客户端,输入这行命令直接就连上了吧 ,现在不能这么连,因为之前是没有密码的,所以这行命令要改一下

    加上IP、密码连接 

    -h(-host)   -p(-port)   -a(authentication)

    三、Redis的常用命令

    Redis中的常用命令就是开发过程中,所有调用的Redis api中的方法

    连上之后我们就可以去操作五种数据类型

    我先给大家演示一下这么切换redis数据库(如果redis中有很多数据库的话,是需要切换到指定数据库再进行后续操作的)

    1、Redis字符串(String)

    set key          //保存
    set name zs
    set age 12
    set sex nan

     删除 

    修改

    get key          //获取
    get name

    type key         //查看类型
    type age            //string 说明type返回的是键值对存储类型,而不是值存储类型

    keys *或keys key //查看所有或者指定的key
    keys *

    SETEX KEY_NAME TIMEOUT VALUE    // 给键值对设置过期时间
    setex zs 60 live

    ttl key    // 获取键值对剩余的存活时间
    ttl zs

    2、Redis哈希(Hash)

    Redis hash 是一个string类型的field和value的映射表,hash特别适合用于存储对象。

    hset key field1 value1 [field2 value2]  #同时将多个field-value设置到哈希表key中
    hset user name zs age 12 sex nv

      

    hget key field                          #获取指定的字段值
    hget user age

    hdel key field                          #删除指定的字段值
    hdel user age

    hgetall key                             #查询指定key的所有字段
    hgetall user

    hexists key field                       #查询指定key中的字段是否存在
    hexists user name

    hlen key                                #获取指定key中的长度
    hlen user

    3、Redis列表(List)

    Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)

    lpush key value1 value2 value3          #将一个或多个值插入到列表头部
    lpush en a b c d e f g

    llen key                                #获取列表的长度
    llen en

    lindex key index                        #根据索引获取列表中的元素
    lindex en 1     #返回f,说明下标从0开始,同时先进后出

    lrange key start sop                    #查看指定范围内的元素
    lrange en 1 3    #返回fed,说明下标从0开始,同时先进后出

    4、Redis集合(Set)

    sadd key value1 [value2]                #向集合添加一个或多个元素
    sadd hobby lanqiu zuqiu bingpangqiu zhuoqiu

    scard key                               #获取集合中的元素数量
    scard hobby

    exists key                              #是否存在
    exists hobby

    5、有序集合(sort set)

    有序集合的成员是唯一的,但分数(score)却可以重复。

    学习网址,向这走⬇⬇⬇

    Redis 命令_w3cschoolRedis 命令用于在 redis 服务上执行操作。要在 redis 服务上执_来自Redis 教程,w3cschool编程狮。https://www.w3cschool.cn/redis/redis-commands.html

    四、Java连接操作Redis

    Java连接redis

    导入pom依赖


        redis.clients
        jedis
        2.9.0

    Java链接

    Jedis jedis = new Jedis("192.168.195.139", 6379);
    jedis.auth("123456");
    System.out.println(jedis.ping());
    jedis.select(1);

    Java操作redis

    Redis字符串(String)

    //        #set key          //保存
            jedis.set("string_name","wangwu");


    //        #get key          //获取
            System.out.println(jedis.get("string_name"));


    //        #type key         //查看类型
            System.out.println(jedis.type("string_name"));


    //        #keys * 或keys key //查看所有或者指定的key
            System.out.println(jedis.keys("*"));


    //        #SETEX KEY_NAME TIMEOUT VALUE    // 给键值对设置过期时间
            jedis.setex("string_zs",30,"活着");


    //        #ttl key    // 获取键值对剩余的存活时间
            System.out.println(jedis.ttl("string_zs"));

    Redis哈希(Hash)

    //    # hset key field1 value1 [field2 value2]  #同时将多个field-value设置到哈希表key中
            jedis.hset("java_user","name","zs");
            jedis.hset("java_user","sex","男");
            jedis.hset("java_user","age","12");

    //    # hget key field                          #获取指定的字段值
            System.out.println(jedis.hget("java_user", "sex"));

    //    # hdel key field                          #删除指定的字段值
            jedis.hdel("java_user","sex");

    //    # hgetall key                             #查询指定key的所有字段
            Map java_user_map = jedis.hgetAll("java_user");
            System.out.println(java_user_map);

    //    # hexists key field                       #查询指定key中的字段是否存在
            Boolean java_user = jedis.hexists("java_user","sex");
            System.out.println(java_user);

    //    # hlen key                                #获取指定key中的长度
            Long java_user_len = jedis.hlen("java_user");
            System.out.println(java_user_len);

    Redis列表(List)

    //        # lpush key value1 value2 value3          #将一个或多个值插入到列表头部
            jedis.lpush("java_hobby", "篮球", "足球", "羽毛球");


    //        # llen key                                #获取列表的长度
            Long java_hobby_len = jedis.llen("java_hobby");
            System.out.println(java_hobby_len);


    //        # lindex key index                        #根据索引获取列表中的元素
            System.out.println(jedis.lindex("java_hobby", 0));


    //        # lrange key start sop                    #查看指定范围内的元素
            System.out.println(jedis.lrange("java_hobby", 0, 1));

    Redis集合(Set)

    //        # sadd key value1 [value2]                #向集合添加一个或多个元素
            jedis.sadd("java_set_user","张三","李四","王五","张三丰");


    //        # scard key                               #获取集合中的元素数量
            System.out.println(jedis.scard("java_set_user"));


    //        # exists key                              #是否存在
            System.out.println(jedis.exists("java_set_user"));

  • 相关阅读:
    化合物纯度、溶剂溶解度检测
    包装类型、自动装箱与拆箱的原理、装箱拆箱的发生时机、包装类型的常量池技术、包装类型的11个常见判断是否相等的例子
    YashanDB混合存储揭秘:行式存储如何为高效TP业务保驾护航(下)
    Python自动查重之原理、方法与实践详解
    Linux进程控制
    代码随想录训练营第34天|LeetCode 1005.K次取反后最大化的数组和、134. 加油站、135. 分发糖果
    被视为“救世主”的架构师,普遍缺失了哪些基础能力?
    基于稳态视觉诱发电位和注意力脑电的混合脑机接口系统
    如何自定义代码生成器(下)
    前后端分离项目-基于springboot+vue的图书馆管理系统的设计与实现(内含代码+文档+报告)
  • 原文地址:https://blog.csdn.net/weixin_67450855/article/details/127537787