zoukankan      html  css  js  c++  java
  • Redis客户端相关

    1.redis是什么

    redis是一个开源的、使用C语言编写的、支持网络交互的、可基于内存也可持久化的Key-Value数据库。redis的官网地址,非常好记,是redis.io。目前,Vmware在资助着redis项目的开发和维护。

    Redis会将所有数据都存放在内存中,所以它的读写性能拾惊人的。

    Redis特性:

    1)速度快

    2)基于键值对的数据结构服务器

    3)丰富的功能:提供了键过期功能,可用用来实现缓存。提供了发布订阅功能,用来实现消息系统。支持Lua脚本功能,可以利用Lua创造出新的Redis命令。提供了简单的事务功能,能在一定程度上保证事务特性。提供了流水线(Pipeline)功能,客户端能将一批命令一次性传到Redis,减少网络开销。

    4)简单稳定

    5)客户端语言多

    6)持久化

    7)主从复制

    8)高可用和分布式

    Redis可以做什么:

    1)缓存

    2)排行榜系统

    3)计数器应用

    4)社交网络

    5)消息队列系统

    用好Redis的建议:

    1)切勿当做黑盒使用,开发与运维同样重要

    2)阅读源码

    2.安装redis

    redis.io下载最新版redis-X.Y.Z.tar.gz后解压,然后进入redis-X.Y.Z文件夹后直接make&& make install即可,安装非常简单。make成功后会在src文件夹下产生一些二进制可执行文件,包括redis-serverredis-cli等等:

    [root@mysql1 software]# tar xvfz redis-3.2.3.tar.gz

    [root@mysql1 software]# cd redis-3.2.3

    [root@mysql1 src]# find . -type f -executable

    安装Redis

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

    $ tar xzf redis-3.0.7.tar.gz

    $ ln -s redis-3.0.7 redis

    $ cd redis

    $ make

    $ make install

    ./redis-trib.rb                     //用于创建集群,检测及重新分片

    ./redis-check-rdb              //用于修复出问题的rdb文件

    ./redis-benchmark            //用于进行redis性能测试的工具

    ./redis-server                    //redis的服务端

    ./redis-cli                          //redis的客户端

    ./mkreleasehdr.sh

    ./redis-check-aof              //用于修复出问题的AOF文件

    ./redis-sentinel                 //用于集群管理

    请参考一键安装redis脚本,InstallRedis.sh

    3.启动redis

    启动redis非常简单,直接./redis-server就可以启动服务端了,还可以用下面的方法指定要加载的配置文件:./redis-server ../redis.conf。默认情况下,redis-server会以非daemon的方式来运行,且默认服务端口为6379

    有三种方法启动Redis

    默认配置、运行配置、配置文件启动

    默认端口是6379

    Redis命令行客户端:

    交互式、命令方式

    停止Redis服务:

    $ redis-cli shutdown

    4.使用redis客户端

    [root@mysql1 src]# ./redis-cli      //启动redis客户端

    127.0.0.1:6379> set name "abc"    //set指定来设置key,value

    OK

    127.0.0.1:6379> get name         //来获取name的值

    "abc"

    127.0.0.1:6379> del name         //删除一个键值

    (integer) 1

    127.0.0.1:6379> ping             //用于检测 redis 服务是否启动

    PONG

    127.0.0.1:6379> shutdown         //通过客户端来关闭redis服务端

    not connected>

    修改redis配置文件,找到

    #requirepass foobared

    去掉注释,并修改为所需要的密码

    requirepass mypass

    重启redis服务

    在远程服务器上执行命令

    $redis-cli -h 127.0.0.1 -p 6379 -a "mypass"

    redis 127.0.0.1:6379>

    redis 127.0.0.1:6379> PING

    redis 127.0.0.1:6379> select index   //切换到指定的数据库

    redis-cli -r 5 -i 1 ping

    redis-cli -r 10 -i 1 info | grep used_memory_human

    echo "world" | redis-cli -x set hello  -x选项代表从标准输入读取数据作为redis-cli的最后一个参数

    redis-cli --latency 可以测试客户端到目标Redis的网络延迟

    redis-cli --bigkeys 使用scan命令对Redis的键进行采样,从中找到内存占用比较大的键值,这些键值可能是系统的瓶颈

    [p2p@pbp2pap11 ~]$ redis-cli -h 127.0.0.1 -a "redis4p2p" keys "H5_USERIDTOKENMAPPING-*" | xargs redis-cli -h 127.0.0.1 -a "redis4p2p" del

    (integer) 433

    [p2p@pbp2pap11 ~]$ redis-cli -h 127.0.0.1 -a "redis4p2p" keys "H5_TOKEN-*" | xargs redis-cli -h 127.0.0.1 -a "redis4p2p" del

    (integer) 3119

    (integer) 3119

    (integer) 3119

    (integer) 663

    Pipeline:将一组Redis命令进行组装,通过一次RTT传输给Redis,再将这组Redis命令的执行结果按顺序返回给客户端

    客户端通信协议:TCPRESP

    客户端管理:

    对比client listinfo clients监控输入缓冲区的优劣势

    client list 能精确分析每个客户端来定位问题

    info clients 执行速度快,分析过程较为简单

    客户端常见异常

    客户端案例分析:

    Redis内存陂增:注意监控monitor命令的执行

    客户端周期性超时:注意监控慢查询

  • 相关阅读:
    JAVA数据库建表工具类
    HTML加CSS3太极图demo
    MD5加密(JAVA&JS)
    Base64工具类(JAVA&JS)
    JS模拟圆周运动
    JAVA读取写入excle表兼容版
    Math.PI和Math.sin() 与 Math.cos()搭配使用详解
    MySQL8.0数据库连接问题
    echarts饼状图案例
    JS前端使用MD5加密
  • 原文地址:https://www.cnblogs.com/allenhu320/p/11339803.html
Copyright © 2011-2022 走看看