本文篇幅较长,建议合理利用右上角目录进行查看(如果没有目录请刷新)。

一、什么是Redis

全称:

  Remote Dictionary Server 远程字典服务器

实质:

  一个缓存结构服务器或数据结构服务器

特性:

  • Database:Redis是一个数据库,可以持久化
  • Non-relational/NoSQL:非关系型数据库
  • Key-Value:键值对格式

Redis与Memcached对比:

  • 一样的简单
  • 更多数据类型
  • 更多操作命令
  • 更多功能组件
  • 支持数据持久化

总结:

  Redis使用其独特的数据结构,提供高效的读写功能,可以作为一个缓存服务器的优秀的选择。

二、Redis的数据结构

数据类型包括:

  • Strings
  • Lists
  • Sets
  • Sorted Sets
  • Hashes

三、Redis服务器的安装

这里只介绍在Windows下的安装

下载地址:

  Redis官网中貌似没有安装版的服务器下载,所以需要到github中下载

  https://github.com/MicrosoftArchive/redis/tags

  

安装:

  使用msi文件安装:下载后一直下一步即可。

  使用zip文件安装:解压到一个文件夹即可

使用:

  如果使用msi来安装:

    1、安装过程中可以选择添加环境变量和设置端口号,而且redis服务器作为一个Windows服务启动了,不需要手动启动

    2、打开一个cmd窗口,输入以下命令,作用分别是:连接redis服务器、保存一个值、取出一个值

      redis-cli.exe -h 127.0.0.1 -p 6379

      set myKey abc

      get myKey

      

  如果使用zip来安装,则步骤略有不同

    1、打开一个cmd窗口 使用cd命令切换目录到 C:\redis 运行以下命令启动redis服务器

      redis-server.exe redis.windows.conf

    2、在打开另外一个cmd窗口执行上面第二步的步骤即可(要用cd命令到redis的文件夹,除非手动设置了环境变量)

配置允许外网访问:

  网上看到了多个方法,可能与版本有关系

  方法1(此方法我没有成功):

    1、打开Redis文件夹下redis.windows-service.conf文件

    2、加#注释掉显示IP

      

    3、设置保护模式为no

      

  方法2(此方法我可行):

    1、和方法1中的第1步相同

    2、把方法1中的第2步注释的IP不要注释,而是改成0.0.0.0

四、Redis客户端

Redis客户端:

  Redis是一个服务器,需要客户端来和服务器交互操作。

  Redis在不同于语言下(Java、C#、Ruby、Python等)都有对应的客户端。

  Redis在Java语言下的客户端有:Jedis、JRedis、Spring Data Redis等。

  其实Jedis还是偏底层,实际应用建议使用Spring Data Redis封装得较好的客户端。

五、Redis可视化工具

为了提升工作效率,可以使用Redis可视化工具,这里介绍Redis Desktop Manager

下载地址:

  https://redisdesktop.com/download

安装:

  直接下一步即可。

登录:

  注意要先设置redis服务器支持外网登录,上面有讲述设置方法。

  然后添加链接,输入地址和端口,测试连接并连接即可。

  

六、

仍需补充的内容

本文暂时着眼于项目实际的使用中,所涉及到的一些知识。而一些更加底层,更加深入的知识,仍然需要时间去了解和学习。

其中包括(但不限于):

  redis服务器的命令、Jedis的使用、Spring下的使用

【已转移】【缓存与性能优化】一篇文章搞掂:Redis的更多相关文章

  1. 15套java互联网架构师、高并发、集群、负载均衡、高可用、数据库设计、缓存、性能优化、大型分布式 项目实战视频教程

    * { font-family: "Microsoft YaHei" !important } h1 { color: #FF0 } 15套java架构师.集群.高可用.高可扩 展 ...

  2. 一篇文章了解Redis数据库

    文章原创于公众号:程序猿周先森.本平台不定时更新,喜欢我的文章,欢迎关注我的微信公众号. redis是一个key-value存储系统.它支持存储的value类型相对更多,包括string(字符串).l ...

  3. 【已转移】【Java架构:基础技术】一篇文章搞掂:Spring

    本文篇幅较长,建议合理利用右上角目录进行查看(如果没有目录请刷新). 本文是对<SPRING实战第4版>的总结,大家也可以去仔细研读该书 [------------------------ ...

  4. 【已转移】【Java架构:基础技术】一篇文章搞掂:Java 8

    本文篇幅较长,建议合理利用右上角目录进行查看(如果没有目录请刷新). 一.Java的历史与演变 目的:为完全了解Java,需要理解Java的诞生原因.成型动力以及他继承的思想. 计算机语言的创新与发展 ...

  5. 【已转移】【Java架构:系统架构理论】一篇文章搞掂:RESTful

    一.定义 1.起源 来源:Roy Fielding的博士论文. 目的:理解和评估以网络为基础的应用软件的架构设计,得到一个功能强.性能好.适宜通信的架构. 定义:一种实现软件通信的架构风格.设计风格, ...

  6. 【已转移】【Java架构:基础技术】一篇文章搞掂:SVN

    一个例子: 公司的SVN代码中,含有target等文件夹,每次生成运行后,有很多文件打扰签入 处理方案: 1.CheckOut时,点击ChooseItems选项,不要选择这些target文件夹(有点麻 ...

  7. mysql 查询性能优化第一章 为什么查询速度会慢

    一 为什么查询速度会慢 在尝试编写快速的查询之前,咱们需要清除一点,真正重要的是响应时间.如果把查询看成是一个任务,那么它由一系列子任务组成,每个子任务都会消耗一定的时间.如果要有 优化查询,实际上要 ...

  8. 【缓存与性能优化】方法论:如何优化一个Web系统的性能

    1.性能简介 一个网络请求的等待: 减少等待时间方式 不同位置对性能的操控 开发人员优化性能的方式 性能指标 2.缓存 缓存是把一些需要计算或者访问数据库的数据,放到内存中,当客户端访问时,直接从内存 ...

  9. Linux性能优化 第一章 性能追踪建议

    1.1常用建议1.1.1记大量的笔记(记录所有的事情)在做性能调优问题的时候很重要的一个操作就是记录下所有的事情,包括每一个输出.执行的结果.可以新建一个文件夹,然后把结果的文件都塞到该文件夹内.包括 ...

随机推荐

  1. Navicat for Mysql 连接报错1251[已解决]

    因为mysql是8.0.11的版本,比较新的mysql采用新的保密方式所以旧的修改密码的方式似乎不能用, 新版本改密码方式: use mysql; ALTER USER 'root'@'localho ...

  2. codeforces 559D Randomizer

    题意简述: 在一个格点图中 给定一个凸$n$边形(每个定点均在格点上),随机选择其中一些点构成一个子多边形, 求子多边形的内部点个数的期望. ----------------------------- ...

  3. leetcode-解题记录 206. 反转链表

    题目 反转一个单链表. 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL 进阶: 你可 ...

  4. iterm2简易登录服务器

    文章目录 添加文件 添加配置 直接登录 方法一 方法二 添加文件 在mac任意目录添加 10.0.1.1.txt ,这里的名字可以随意起,也可以不是txt #!/usr/bin/expect set ...

  5. nginx 配置代理 session 丢失

    最开始一直用的ip访问的项目是没问题的  , 后来改成用了域名访问就发现一直获取不了session ,最开始以为是跨域问题 , 但项目中已经配置了跨域 , 因为第一次用 nginx  ,果断入坑了 , ...

  6. ORM模型类介绍,

    所有的软件开发过程中,都会涉及到对象和关系型数据库,在用户层面和业务逻辑层面,程序员编写代码都是面向对象的,当我们对象的信息发生变化的时候,都需要将对应的信息,传到关系型数据库中.而在此之前,需要我们 ...

  7. USACO 5.5 章节

    Picture 题目大意 IOI 1998 求n (<=5000)个矩形 覆盖的图形 的周长(包括洞), 坐标范围[-10000,10000] 题解 一眼离散化+2维线段树,但仔细一想 空间不太 ...

  8. LeetCode 数组中两个数的最大异或值

    题目链接:https://leetcode-cn.com/problems/maximum-xor-of-two-numbers-in-an-array/ 题目大意: 略. 分析: 字典树 + 贪心. ...

  9. python自带的split VS numpy中的split比较

    Python split() 通过指定分隔符对字符串进行切片,如果参数 num 有指定值,则分隔 num+1 个子字符串 str1.split() 里面的参数,可以是空格,逗号,字符串啥的,具体应用与 ...

  10. Android深度探索-卷1第六章心得体会

    这章主要介绍了第一个linux驱动程序:统计单词个数.Linux系统将每一个驱动都映射成一个文件,这些文件称为设备文件或驱动文件,都保存在/dev目录中.大多数Linux驱动都有与其对应的设备文件,因 ...