• (三)、Redis入门


    Redis

    Redis 官网:https://redis.io/

    源码地址:https://github.com/redis/redis

    Redis 在线测试:http://try.redis.io/

    Redis 命令参考:http://doc.redisfans.com/

    REmote DIctionary Server(远程字典服务器)是完全开源免费的,用C语言编写的,遵守BSD协议,是一个高性能的(key/value)分布式内存数据库,基于内存运行 并支持持久化的NoSQL数据库,是当前最热门的NoSql数据库之一,也被人们称为数据结构服务器。

    Redis 与其他 key - value 缓存产品有以下三个特点:

    • Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用
    • Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储
    • Redis支持数据的备份,即master-slave模式的数据备份

    能干嘛

    • 内存存储和持久化:redis支持异步将内存中的数据写到硬盘上,同时不影响继续服务
    • 取最新N个数据的操作,如:可以将最新的10条评论的ID放在Redis的List集合里面
    • 模拟类似于HttpSession这种需要设定过期时间的功能
    • 发布、订阅消息系统
    • 定时器、计数器

    怎么玩

    • 数据类型、基本操作和配置
    • 持久化和复制,RDB/AOF
    • 事务的控制
    • 复制(主从关系)

    安装Redis

    一、安装gcc依赖
    yum install -y gcc 
    
    二、下载并解压安装包
    wget http://download.redis.io/releases/redis-6.2.1.tar.gz
    tar -zxvf redis-6.2.1.tar.gz
    
    三、cd切换到redis解压目录下,执行编译
    cd redis-6.2.1
    make
    
    四、安装并指定安装目录
    [root@localhost redis-6.2.1]# make install PREFIX=/usr/local/redis
    
    
    #复制一份配置文件到自己文件夹
    [root@VM-4-15-centos ~]# mkdir myredis
    [root@VM-4-15-centos ~]# cd redis-6.2.1
    [root@VM-4-15-centos redis-6.2.1]#  cp redis.conf /root/myredis/
    
    

    启动redis的三种方式

    1.直接启动redis

    在redis src目录下

    [root@VM-4-15-centos redis-6.2.1]# cd src
    [root@VM-4-15-centos src]# ./redis-server

    
    16469:C 08 Aug 2021 00:33:43.312 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
    16469:C 08 Aug 2021 00:33:43.312 # Redis version=6.2.1, bits=64, commit=00000000, modified=0, pid=16469, just started
    16469:C 08 Aug 2021 00:33:43.312 # Warning: no config file specified, using the default config. In order to specify a config file use ./redis-server /path/to/redis.conf
    16469:M 08 Aug 2021 00:33:43.313 * monotonic clock: POSIX clock_gettime
                    _._                                                  
               _.-``__ ''-._                                             
          _.-``    `.  `_.  ''-._           Redis 6.2.1 (00000000/0) 64 bit
      .-`` .-```.  ```/    _.,_ ''-._                                   
     (    '      ,       .-`  | `,    )     Running in standalone mode
     |`-._`-...-` __...-.``-._|'` _.-'|     Port: 6379
     |    `-._   `._    /     _.-'    |     PID: 16469
      `-._    `-._  `-./  _.-'    _.-'                                   
     |`-._`-._    `-.__.-'    _.-'_.-'|                                  
     |    `-._`-._        _.-'_.-'    |           http://redis.io        
      `-._    `-._`-.__.-'_.-'    _.-'                                   
     |`-._`-._    `-.__.-'    _.-'_.-'|                                  
     |    `-._`-._        _.-'_.-'    |                                  
      `-._    `-._`-.__.-'_.-'    _.-'                                   
          `-._    `-.__.-'    _.-'                                       
              `-._        _.-'                                           
                  `-.__.-'                                               
    
    16469:M 08 Aug 2021 00:33:43.313 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
    16469:M 08 Aug 2021 00:33:43.313 # Server initialized
    16469:M 08 Aug 2021 00:33:43.313 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
    16469:M 08 Aug 2021 00:33:43.313 * Ready to accept connections
    
    

    启动成功

    2.修改配置文件 后台启动

    在有redis.conf的目录下

    [root@VM-4-15-centos myredis]# vi redis.conf
    

    img

    把 daemonize no 改为 daemonize yes

    然后指定redis.conf文件启动

    ./redis-server 【redis配置文件所在路径】

    [root@VM-4-15-centos src]# ./redis-server /root/myredis/redis.conf
    

    关闭redis进程

    [root@VM-4-15-centos src]# ps -aux | grep redis
    root     17297  0.2  0.5 195544 10068 ?        Ssl  00:38   0:00 ./redis-server 127.0.0.1:6379
    root     17494  0.0  0.0 112812   972 pts/1    R+   00:39   0:00 grep --color=auto redis
    

    使用kill命令杀死进程

    [root@VM-4-15-centos src]# kill 17297
    
    3.开机自启

    添加开机启动服务

    [root@VM-4-15-centos src]# vi /etc/systemd/system/redis.service
    

    复制内容

    [Unit]
    Description=redis-server
    After=network.target
    
    [Service]
    Type=forking
    ExecStart=/usr/local/redis/bin/redis-server /root/myredis/redis.conf
    PrivateTmp=true
    
    [Install]
    WantedBy=multi-user.target
    
    ExecStart=/usr/local/redis/bin/redis-server 【redis配置文件所在路径】
    

    测试 redis

    [root@VM-4-15-centos src]# redis
    127.0.0.1:6379> ping
    PONG
    

    表示这是一个正常的联通状态

    关闭redis进程

    [root@VM-4-15-centos src]# ps -aux | grep redis
    root     17297  0.2  0.5 195544 10068 ?        Ssl  00:38   0:00 ./redis-server 127.0.0.1:6379
    root     17494  0.0  0.0 112812   972 pts/1    R+   00:39   0:00 grep --color=auto redis
    

    使用kill命令杀死进程

    [root@VM-4-15-centos src]# kill 17297
    

    Redis关闭

    单实例关闭

    redis-cli shutdown
    

    在终端关机

    shutdown
    

    在终端退出

    exit
    

    Redis启动后的杂项知识

    1.测试redis在机器运行的效能

    在redis安装目录下输入

    [root@VM-4-15-centos bin]#  redis-benchmark
    

    image-20210808204418051

    2.默认16个数据库

    类似数组下表从零开始,初始默认使用零号库,可在配置文件配置

    • select用于切换数据库
    127.0.0.1:6379> select 15
    OK
    127.0.0.1:6379[15]> 
    
    • dbsize查看当前数据库的key的数量
    127.0.0.1:6379> dbsize 
    (integer) 4
    
    • keys *用于查看当前库的key
    127.0.0.1:6379> keys *
    1) "k1"
    2) "myhash"
    3) "key:__rand_int__"
    4) "counter:__rand_int__"
    

    keys k?相当于模糊查询

    127.0.0.1:6379> keys k?
    1) "k1"
    
    • flushdb:清空当前库
    • flushall:通杀全部库

    统一密码管理,16个库都是同样密码,要么都OK要么一个也连接不上

    Redis索引都是从零开始

    为什么默认端口是6379:MDRZ

    Vim命令

    按 ESC,左下角就可以进行输入

    :w 保存但不退出

    :wq 保存并退出

    :q 退出

    :q! 强制退出,不保存

    :e! 放弃所有修改,从上次保存文件开始再编辑命令历史

    服务操作命令

    systemctl start redis.service #启动redis服务

    systemctl stop redis.service #停止redis服务

    systemctl restart redis.service #重新启动服务

    systemctl status redis.service #查看服务当前状态

    systemctl enable redis.service #设置开机自启动

    systemctl disable redis.service #停止开机自启动

  • 相关阅读:
    在线工具TOOL收藏
    HtmlDocument [代码碎片笔记]
    ChromiumWebBrowser [链接]
    PHP [开发汇总]
    Discuz[技术文献]
    [jvm] -- 监控和调优常用命令工具篇
    [jvm] -- 常用内存参数配置篇
    [日常摘要] -- 事务的隔离级别篇
    [日常摘要] -- ThreadLocal篇
    [日常摘要] -- zookeeper篇
  • 原文地址:https://www.cnblogs.com/cg-ww/p/15176278.html
Copyright © 2020-2023  润新知