• redis


    Redis是NoSQL中比较常典型的一个非关系型数据库,在日常工作中也是最为常见的。Redis是一个由C语言编写的开源的、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API

    查看数据库排名可以通过https://db-engines.com/en/ranking这个网站,目前oracle排名第一,mysql第二,elasticsearch是大数据的数据库,简称ES

    一、安装及启动Redis

    由于我们日常中最多使用redis的环境是在linux中,所以这里主要来看linux下的安装方法

    1、下载并安装Redis

    我们可以使用wget下载,也可以将redis的包下载下来并且导入到linux中

    $ wget http://download.redis.io/releases/redis-2.8.17.tar.gz

    $ yum install gcc tcl -y

    $ tar xzf redis-2.8.8.tar.gz

    $ cd redis-4.0.8

    $ make

    $ mkdir /usr/local/redis

    $ make install PREFIX=/usr/local/redis

    2、启动redis

    在redis的bin目录下执行./redis-server默认启动redis使用的是默认配置,端口号为6379,密码为空,如果需要后台启动的话,可以使用nohup来启动,nohup redis-server &,当然,如果需要指定redis的配置文件,那我们可以在启动命令中指定好配置文件就可以,nohup redis-server /usr/local/redis/redis.conf &

    3、停止redis

    在bin目录执行redis-cli shutdown

    4、redis配置

    在redis目录下vi redis.conf,可以看到启动命令./redis-server /path/to/redis.conf,如下是基础的关系

    1k => 1000 bytes
    1kb => 1024 bytes
    1m => 1000000 bytes
    1mb => 1024*1024 bytes
    1g => 1000000000 bytes
    1gb => 1024*1024*1024 bytes

    长连接时间:tcp-keepalive 300,300秒

    后台进程:daemonize yes

    pid保存文件的位置:pidfile /var/run/redis_6379.pid

    log文件位置:logfile ""

    数据库数量:databases 16,就是在redis连接工具里看到16(可以改)个数据库,db0-db15

    save 900 1 前面是秒,后面是执行次数,900秒内有1次操作,15分钟后就同步到本地文件里
    save 300 10 300秒内有10次操作,5分钟后就同步到本地文件里
    save 60 10000 60秒内有10000次操作,1分钟后就同步到本地文件里,会放在appendonly.aof这个文件里,以k-v形式

    持久化使用压缩到本地文件:rdbcompression yes

    数据保存在哪里:dbfilename dump.rdb

    maxmemory:128mb

    requirepass 123456:设置密码为123456

    dir  /usr/local/redis/redisData:对应redis指定的路径,指定好以后持久化的数据会保存到appendonly.aof这个文件里,以k-v形式

    appendonly yes:启动持久化

    5、连接redis

    远程连接redis,可以使用redis自带的工具redis-cli,具体使用方法如下:

    redis-cli -h 127.0.0.1 -p 6379 -n 0
     -h <hostname> Server hostname (default: 127.0.0.1).
     -p <port> Server port (default: 6379).
     -a <password> Password to use when connecting to the server.
     --help 显示帮助信息
    在redis的bin目录下,直接./redis-cli -a 123456,就可以进入
    如果redis客户端连不上redis服务器,要关闭虚拟机防火墙service iptables stop
    切换数据库: select 0 select 10

     6、redis常用命令

    redis是一个数据库,那么也就逃脱不开增删改查的操作,接下来把每种数据类型常用的增删改查命令列举一次,如果对某个命令不知道该如何使用的时候可以使用help来查询如:

    右键数据库,选择Add New Key,输入key和value,默认类型是string类型,点击save在点击确定就添加成功了

    也可以添加hash类型,要输入Key、Key和Value

    常用命令:

    string

    增=改  set  

    set aaa eee EX 10(秒)  set aaa eee PX 5000(毫秒)

    append aaa test回车出现integer 4(test长度为4),append用处不多,如果aaa不存在就直接生成aaa:test,如果aaa存在就取追加后的长度

    mset aaa cc2b bbb cc222 ccc 222(mset可以写入多个值)

    getset key value,将value作为key的值写入,并将key的旧值返回

    setex ssj(key) 10(s) sunshujiang(value)

    删除

    del key

    查询

    mget aaa bbb ccc可以获取到多个value

    hash

    增=改

    hset besttest(hash的key) andashu(里面的key) good(里面的value)

    查询

    hget besttest andashu返回里面的value

    hgetall besttest会返回所有的key和value

    删除

    hdel besttest andashu

    7、监控redis

    命令行监控:

    吞吐量

    Redis提供的INFO命令不仅能够查看实时的吞吐量(ops/sec),还能看到一些有用的运行时信息。下面用grep过滤出一些比较重要的实时信息,比如已连接的和在阻塞的客户端、已用内存、拒绝连接、实时的tps和数据流量等:

    [root@besttest bin]# ./redis-cli  -a 123456 info | grep -e "connected_clients" -e "blocked_clients" -e "used_memory_human" -e "used_memory_peak_human" -e "rejected_connections" -e "evicted_keys" -e "instantaneous"

    connected_clients:2                               # 连接数
    blocked_clients:0                                   # 阻塞连接数
    used_memory_human:651.30K             # redis占用内存
    used_memory_peak_human:651.30K    # redis占用内存峰值

    instantaneous_ops_per_sec:0                # 每秒处理请求数
    instantaneous_input_kbps:0.00             # 每秒读字节数
    instantaneous_output_kbps:0.00          # 每秒写字节数
    rejected_connections:0                         # 拒绝连接数
    evicted_keys:0                                       # 运行以来删除的key数量


    # 先将前面的命令保存到一个shell脚本中,
    vi testredis.sh 
    #!/bin/bash
    /usr/local/redis/redis-cli -h 127.0.0.1 -p 6380 -a 123456  info | grep -e "connected_clients" -e "blocked_clients" 
    -e "used_memory_human" -e "used_memory_peak_human" -e "rejected_connections" -e "evicted_keys" -e "instantaneous" # 保存后并给予执行的权限 chmod 755 testredis.sh # 使用watch命令实时监控(每隔一秒高亮显示连接数、阻塞连接数、redis占用内存、redis占用内存峰值、拒绝连接数、运行以来删除的key数量、请求数的变化情况) watch -n 1 -d "/usr/local/redis/testredis.sh"
  • 相关阅读:
    __dict__
    谷歌浏览器如何清除当前页面的缓存
    博客园插入超链接时如何取消下划线
    杂七杂八
    博客园首页如何添加 Live 2D 模型
    访问 IIS 元数据库失败 的解决方法 .
    VS 关于无法打开项目文件,此安装不支持该项目类型的问题
    汉字转为unicode
    Windchill 预览效果偏向左边
    MD04
  • 原文地址:https://www.cnblogs.com/laosun0204/p/11920861.html
Copyright © 2020-2023  润新知