超详细的Redis缓存知识

一:Redis介绍

   redis是一个key-value等多种数据结构的存储系统,数据都是缓存在内存中。value里面可包含很多类型,像String,list,set,hash等类型,一个value可以存储1GB的数据,该数据库使用ANSI C语言编写,相较于其他缓存来说,存储方面有优势,测试速度快,性能上也有优势.

redis的中文官网:http://www.redis.net.cn/ 

   Redis缓存过程:

客户端-->发送请求-->tomcat容器-->请求服务器-->mysql

Redis缓存:连接服务容器和数据库
 解决2个问题:1.访问次数过多  2.高并发(处理结果集合的量 是平常查询的10倍 处理过程慢)
一个一个的进 队列

缓存:业务数据?基础数据?   看访问次数的频繁
那些属于基础数据:用户信息(用户在系统里面的所有行为) 地址信息 权限信息  

如果要做更新操作 就先把缓存里面的数据先干掉 ,重新查询数据库的时候在缓存一次  ,做缓存的目的是避免脏读.

 二:在Linux上安装redis(我的是windows系统,所以用虚拟机加winscp加xshell操作)

1 安装和启动redis服务

    1 在Linux中创建目录:/myredis/redis,并将压缩包复制到该目录(winscp)
        

    2 解压压缩文件,并执行make对解压后的文件进行编译
        cd /myredis/redis
        #解压文件
        tar -zxvf redis-5.0.0.tar.gz
        #进入解压后的文件夹
        cd redis-5.0.0
        #编译
        make

    3 安装gcc依赖(必须的依赖)
        yum install gcc

    4 再次编译安装
        make MALLOC=libc

    5 启动Redis(要在网络上启动服务)
        #进入src文件夹
        cd /redis-5.0.0/src
        #启动服务
        ./redis-server


2 后台进程方式启动Redis
    1 修改redis.conf文件
        #进入redis-5.0.0的src文件夹
        cd /redis-5.0.0
    2 打开redis.conf文件
        vim redis.conf
    3 修改信息
        daemoize no改为daemoize yes,

        注释掉  bind 127.0.0.1

        protected mode  yes 修改为 protected mode no
        
        保存并退出。

        停止防火墙:
        systemctl stop firewalld.service (一定要把防火墙关了)
    4 指定redis.conf文件启动
        cd /redis-5.0.0/src
        ./redis-server /myredis/redis/redis-5.0.0/redis.conf(启动方式必须加载配置文件)

3 启动Redis客户端
    1.进入Redis-5.0.0/src目录,启动Redis客户端
         ./redis-cli
    2.使用ping命令开执行是否成功
        127.0.0.1:6379> ping

4 关闭Redis
    1 查看redis进程
        ps -aux | grep redis
    2 杀死进程
        kill -9 1693

三、redis的应用场景有哪些

1、会话缓存(最常用)
2、消息队列,比如支付
3、活动排行榜或计数
4、发布、订阅消息(消息通知)
5、商品列表、评论列表等

四:redis服务相关的命令

select  index         #选择数据库(数据库编号0-15)
quit                       #退出连接
info                       #获得服务的信息与统计
monitor                 #实时监控
config get             #获得服务配置
flushdb                 #删除当前选择的数据库中的key
flushall                 #删除所有数据库中的key

命令一般选择方便储存也方便解析的.

五:使用jedis测试是否连接成功

/**
     * 操作字符串数据
     */
    @Test
    public void redisString() {
        //host:连接地址,port:端口号
        Jedis jedis = new Jedis("192.168.163.150", 6379);
        //查看是否连接:如果输出为pong,则证明连接成功
        System.out.println(jedis.ping());
        //1、赋值:键值对形式
        jedis.set("admin", "123456");
        //2、设置多个键值对
        jedis.mset("a", "apple", "b", "banana", "c", "cherry");
        //3、取值
        System.out.println(jedis.get("admin"));
        //4、删除
        jedis.del("admin");
    }

 1.下载jedis的包,引入依赖(防火墙一定要关掉)

 2.jedis连接ip地址和端口(6379)

 3.保存到xshell是根据json格式来的,所以要导入json的包

 4.写入是objectMapper 然后调用写入(WriteValueAsString)的方法写入缓存中

  5.从缓存中取出来是objectMapper  调用read的方法 用jedis可以set get数据(根据缓存的键名取)  然后objectMapper  写入 取出数据.

关于redis我的不是很完整,刚刚看到一个redis的博客,觉得还阔以,嘻嘻,在这里放个网址,你们可以看看哦,https://blog.csdn.net/middleware2018/article/details/80355418

猜你喜欢

转载自blog.csdn.net/qqqnzhky/article/details/84422590
今日推荐