【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> Redis应用学习——认识Redis

1. Redis是什么

     Redis是一个开源的,基于key-value的存储服务系统,其value支持多种数据结构,而且高性能、功能丰富。

1. Redis的特点

  1. 速度快:Redis的读写速度很快,原因在于其将数据存储在内存中
  2. 数据持久化:在内存中的数据如果不进行持久化处理,一旦丢失是无法恢复的,比如突然断电,而Redis的数据也是保存在内存中,但对数据的更新将异步的存储在硬盘上,因此就能保证数据的持久化。
  3. value数据支持多种数据结构:Redis中存储数据以key-value形式存在,value支持String(字符串)、HashTable(哈希表)、List(链表)、Set(不重复集合)、Sorted Set(有序不重复集合)等类型的数据
  4. 支持多种客户端操作语言:比如Java、Python等
  5. 功能丰富:不仅支持数据存储,还可以进行发布订阅、支持事务处理等。
  6. 采用单线程模型
  7. 支持主从复制
  8. 高可用、分布式

2. 应用场景

  1. 缓存(数据查询、短连接、新闻内容、商品内容等等)。(最多使用)

  2. 分布式集群架构中的session分离。

  3. 聊天室的在线好友列表。

  4. 任务队列。(秒杀、抢购、12306等等)

  5. 应用排行榜。

  6. 网站访问统计。

  7. 数据过期处理(可以精确到毫秒)

3. Redis安装(Linux系统)

    1. redis是C语言开发,建议在linux上运行,本教程使用Centos6.4作为安装环境。

         安装redis需要先将官网下载的源码进行编译,编译依赖gcc环境,如果没有gcc环境,需要安装gcc:yum install gcc-c++

    2. 使用redis3.0版本。3.0版本主要增加了redis集群功能。先将源码从官网下载:http://download.redis.io/releases/redis-3.0.0.tar.gz,将redis-3.0.0.tar.gz拷贝到/usr/local下

    3. 解压源码:tar -zxvf redis-3.0.0.tar.gz 

    4. 进入解压后的目录进行编译:

   cd /usr/local/redis-3.0.0

   make

    5. 安装到指定目录,如 /usr/local/redis

   cd /usr/local/redis-3.0.0

   make PREFIX=/usr/local/redis install

    6. redis.conf,redis.conf是redis的配置文件,redis.conf在redis源码目录。拷贝配置文件到安装目录下,进入源码目录,里面有一份配置文件redis.conf,然后将其拷贝到安装路径下

   cd /usr/local/redis

   mkdir conf

   cp /usr/local/redis-3.0.0/redis.conf  /usr/local/redis/bin

    7. 安装目录bin下的文件列表

Redis应用学习——认识Redis

Redis应用学习——认识Redis

redis3.0新增的redis-sentinel是redis集群管理工具可实现高可用。

4. Redis的使用

1. 启动Redis

  • 前端模式启动,进入Redis的安装目录,直接运行bin/redis-server将以前端模式启动,前端模式启动的缺点是ssh命令窗口关闭则redis-server程序结束,不推荐使用此方法。如下图:

Redis应用学习——认识Redis

  • 后端模式启动,修改redis.conf配置文件,修改 daemonize yes ,表示以守护线程模式运行Redis,即以后端模式启动,即使当前命令窗口关闭也会继续运行。使用该方法启动Redis

Redis应用学习——认识Redis

    执行如下命令启动redis:

    cd /usr/local/redis/bin(该命令用于进入Redis的安装目录中的bin目录下)

    ./redis-server redis.conf(通过指定配置文件所在的路径运行Redis)

    Redis默认使用6379端口,也可更改redis.conf文件,修改端口号:

Redis应用学习——认识Redis

    启动Redis后,可通过 ps aux|grep redis 命令来查看Redis是否运行

Redis应用学习——认识Redis

2. Redis客户端

启动Redis后,我们可以通过使用Redis的客户端来进行一些操作

  • Redis客户端连接到Redis:进入Redis的安装目录中的bin目录下,运行指令  ./redis-cli -h  ip地址  -p 端口号

Redis应用学习——认识Redis

  • Redis客户端连接到Redis后,即可进行一些操作,比如像Redis中进行读写数据,

Redis应用学习——认识Redis

  • 退出Redis客户端:输入  exit  指令即可

Redis应用学习——认识Redis

  • 通过Redis客户端来关闭Redis:(可以通过指令kill -9 redis程序的进程号来直接关闭Redis,但无法保存存储在内存中的数据,不使用)
    • 首先,确保启动时的配置文件中有相关配置:修改redis.conf中的配置,修改logfiledir的值,指定路径,并在所写的路径下创建对应的文件与文件夹,注意,一定要设置这两个文件与文件夹的权限,保证Redis程序能够有权限对这两个文件和文件夹进行读写。logfile所指定的文件用于保存日志记录的文件,而dir指定的文件夹用于保存Redis关闭后持久化的数据的保存目录Redis应用学习——认识RedisRedis应用学习——认识Redis
    • 使用修改过的Redis配置文件启动Redis,启动后通过Redis客户端连接到启动的Redis,使用shutdwn命令直接关闭RedisRedis应用学习——认识Redis

3. Redis中部分通用指令(API)的使用

首先需要通过Redis客户端连接到Redis,然后通过客户端来执行这些指令

  • keys  [pattern]:用于遍历所有的key,pattern 代表类似于正则表达式,表示任意长度的任意字符,?表示任意一个字符,Redis应用学习——认识Redis但是,keys命令在实际开发很少用到,其时间复杂度为O(n)
  • del key [key1 ...]:删除指定的所有key以及其value数据,返回成功删除key的数量,其时间复杂度为O(1)Redis应用学习——认识Redis
  • dbsize:计算出key的总数量,该命令较为常用,可以进行一个快速的对Redis内的数据项进行计数,其时间复杂度为O(1)Redis应用学习——认识Redis
  • exists key:检查某个key是否存在,返回1代表存在,如果返回0代表不存在,其时间复杂度为O(1)​​​​​​​Redis应用学习——认识Redis
  • expire key seconds:设置某个key对应的数据项在seconds秒之后过期,也就是会被自动删除,其时间复杂度为O(1)​​​​​​​​​​​​​​
  • ttl key:查询key对应的数据项剩余的过期时间,大于等于0表示还未过期,如果为-1表示key没有设置过期时间,小于-1表示已经过期了,其时间复杂度为O(1)​​​​​​​​​​​​​​
  • persist key:取消key对应的数据项的过期时间,其时间复杂度为O(1)​​​​​​​​​​​​​​
  • type key:查询key所对应的value数据的类型,有string,list,set,zset,hash或者none(表示不存在的key),其时间复杂度为O(1)​​​​​​​​​​​​​​

相关文章:

  • 2021-12-14
  • 2022-12-23
  • 2021-10-14
  • 2021-11-19
  • 2021-05-02
  • 2021-10-05
猜你喜欢
  • 2021-08-01
  • 2022-01-04
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-08-13
  • 2021-06-23
相关资源
相似解决方案