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-server、redis-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命令的执行结果按顺序返回给客户端

客户端通信协议:TCP,RESP

客户端管理:

对比client list和info clients监控输入缓冲区的优劣势

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

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

客户端常见异常

客户端案例分析:

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

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

Redis客户端相关的更多相关文章

  1. Redis客户端管理

    1.客户端管理 Redis提供了客户端相关API对其状态进行监控和管理,本节将深入介绍各个API的使用方法以及在开发运维中可能遇到的问题. 1.1 客户端API 1.client list clien ...

  2. StackExchange.Redis客户端读写主从配置,以及哨兵配置。

    今天简单分享一下StackExchange.Redis客户端中配置主从分离以及哨兵的配置. 关于哨兵如果有不了解的朋友,可以看我之前的一篇分享,当然主从复制文章也可以找到.http://www.cnb ...

  3. 使用StackExchange.Redis客户端进行Redis访问出现的Timeout异常排查

    问题产生 这两天业务系统在redis的使用过程中,当并行客户端数量达到200+之后,产生了大量timeout异常,典型的异常信息如下: Timeout performing HVALS Parser2 ...

  4. Redis客户端之Spring整合Jedis,ShardedJedisPool集群配置

    Jedis设计 Jedis作为推荐的java语言redis客户端,其抽象封装为三部分: 对象池设计:Pool,JedisPool,GenericObjectPool,BasePoolableObjec ...

  5. "Redis客户端连接数一直降不下来"的有关问题解决

    [线上问题] "Redis客户端连接数一直降不下来"的问题解决 前段时间,上线了新的 Redis缓存(Cache)服务,准备替换掉 Memcached. 为什么要将 Memcach ...

  6. redis客户端可以连接集群,但JedisCluster连接redis集群一直报Could not get a resource from the pool

    一,问题描述: (如题目)通过jedis连接redis单机成功,使用JedisCluster连接redis集群一直报Could not get a resource from the pool 但是使 ...

  7. 如何编写入门级redis客户端

    概述 Redis是开源的.基于内存的数据结构存储系统,可用作数据库.缓存以及消息代理方面.Redis支持许多种数据结构,并内置了丰富的诸如冗余.脚本.事务.持久化等功能,深受业界喜爱,被各种业务系统广 ...

  8. Netty开发redis客户端,Netty发送redis命令,netty解析redis消息

    关键字:Netty开发redis客户端,Netty发送redis命令,netty解析redis消息, netty redis ,redis RESP协议.redis客户端,netty redis协议 ...

  9. 4.Redis客户端

    4.Redis客户端4.1 客户端通信协议4.2 Java客户端Jedis4.2.1 获取Jedis4.2.2 Jedis的基本使用方法4.2.3 Jedis连接池的使用方法4.2.4 Redis中P ...

随机推荐

  1. 2017 ZSTU寒假排位赛 #8

    题目链接:https://vjudge.net/contest/149845#overview. A题,水题. B题,给出 p个 第一个人的区间 和 q个第二个人的区间,问[l,r]中有多少个整数满足 ...

  2. flask静态html

    flask使用静态html 在flask并不是所有的html都需要做成动态html,并且做成动态html在使用静态资源时要改变它的路径.所以我们有些可以使用静态html. 静态html不需要后台渲染, ...

  3. 如何在linux中发送邮件,使用163邮箱发信。

    linux中,可以使用mail命令往外发送邮件,在使用前,只需要指定如下简单配置即可,这里演示用  163.com    邮箱发送至 qq.com 编辑 /etc/mail.rc,写入下方的参数 se ...

  4. 解决“mysql不是内部/外部命令,也不是可执行程序,也不是批处理文件”

    解决方案: 1.切换到mysql.exe文件所在目录: 2.将mysql.exe文件所在目录添加到操作系统内的环境变量中: 如何添加环境变量: 1.右击“我的电脑”——>属性——>高级—— ...

  5. jdbc结合commons-dbutils-1.6.jar做素材数据处理的例子

    前两个 insertTitle,insertOpening 是刚开始做的针对单一素材数据解析及写入的方法,后面一个 insertMaterial 是后期封装的一个可处理各种素材导入的方法,main方法 ...

  6. Rsync数据同步工具及sersync同步工具

    Rsync简介 Rsync英文全称Remote synchronization,从软件的名称就可以看出来,Rsync具有可使本地和远程两台主机之间的数据快速复制同步镜像,远程备份的功能,这个功能类似s ...

  7. redis的服务器信息状态信息查看

    Redis的服务器信息状态信息查看 Redis的提供了一个信息命令查看Redis的服务器的信息,类似的Linux提供一个顶级命令查看系统的信息 redis-cli info # Server #服务器 ...

  8. 10 MySQL之数据备份与恢复

    01-数据备份 # 1.使用 MySQLdump 命令备份 MySQLdump 是MySQL提供的一个非常有用的数据库备份工具. MySQLdump 命令执行时,可以将数据库备份成一个文本文件,该文本 ...

  9. syspolicy_purge_history作业故障排除

    描述 我们有一台数据库服务器windows 2012 r2 上有安装sql server 2012 和sql server 2016双实例,后续又把sql 2016的服务全部停用,即只保留sql 20 ...

  10. 手写web框架之实现依赖注入功能

    我们在Controller中定义了Service成员变量,然后在Controller的Action方法中调用Service成员变量的方法,那么如果实现Service的成员变量? 之前定义了@Injec ...