学习redeis初衷,系统并发量越来越大,由于需要开发分布式的应用,前端由nginx反向代理分发http请求到上游服务节点,节点是单独tomcat部署存在,需要对session进行统一管理,借助tomcat的redis插件把session的缓存到redis容器。
以下是整理的基本的redis入门相关指令,方便大家入门学习。
教程内容主要来源 “易百教程”:http://www.yiibai.com/redis/redis_environment.html
强烈给大家推荐“易百教程”,适合开发入门,地址:http://www.yiibai.com/
1.环境安装
启动redis:redis-server;
检查是否工作:redis-cli,输入ping;
2.redis配置,配置文件可在redis根目录redis.conf
基本语法:CONFIG GET CONFIG_SETTING_NAME
所有配置:CONFIG GET *;
3.数据类型
字符串:SET name "yiibai";GET name;
Hashes哈希值:HMSET user:1 username yiibai password 123;HGETALL user:1;
List列表:lpush totorList redis;lpush totorList mongodb;lpush totorList rebitmq;
lrange totorList 0 10;
Set集合:sadd totorList redis;sadd tutorList mongodb;sadd tutorList rebitmq;
smembers totorList;
集合排序:zadd totorList 0 redis; zaddtutorList 0 mongodb;zaddtutorList 0 rebitmq;
4.redis 命令
启动redis客户端:redis-cli;
远程服务器运行命令:redis-cli -h host -p port -a passowrd
5.keys 管理键
语法:COMMAND KEYNAME;
删除键:DEL key;
判断键:EXISTS KEY;
查找键:KEYS pattern;
键的数据值:TYPE key;
6.发布订阅
待定
7.事务
启动,事务开始:MULTI;
执行:EXEC;
8.脚本,支持Lua解析器用于计算脚本,2.6.0开始内置
命令:EVAL script numkeys key ... arg ...
9.redis连接
验证是否与redis服务器连接:AUTH "password";ping;(输出pong)
关闭连接:QUIT;
更改当前连接所选数据库:SELECT index;
10.redis服务器
服务器的统计数据和信息:INFO;
kill客户端连接:CLIENT KILL [ip,port];
连接列表:CLIENT LIST;
11.Redis备份
备份,创建dump.rdb在Redis目录:SAVE;
还原:CONFIG get dir;
后台自动备份:BGSAVE;
12.redis安全,客户端身份验证,确保redis配置文件密码一致
获取密码:CONFIG get requirepass;
设置密码:CONFIG set requestpass "yiibai";
AUTH验证:AUTH password;
13.Redis基准
语法:redis-benchmark [option] [option value];
例子:redis-benchmark -h 127.0.0.1 -p 6379 -t set,lpush -n 100000 -q
14.客户端连接
客户端最大数量:config get maxclients;
服务器最大连接设置:redis-server --maxclients 100000;
15.管道传输,批量执行命令,提高响应;
16.分区,数据分成多个redis,每个实例包含关键字的子集
17.java连接操作
jedis.jar;
扩展:
同步和异步:关注的是消息通信机制
同步:就是在发出一个"调用"时,在没有得到结果之前,该"调用"就不返回;
异步:由"调用者"主动等待这个"调用"的结果;
例子:
你打电话问书店老板有没有《分布式系统》这本书,如果是同步通信机制,书店老板会说,你稍等,”我查一下",
然后开始查啊查,等查好了(可能是5秒,也可能是一天)告诉你结果(返回结果)。
而异步通信机制,书店老板直接告诉你我查一下啊,查好了打电话给你,然后直接挂电话了(不返回结果)。然后
而异步通信机制,书店老板直接告诉你我查一下啊,查好了打电话给你,然后直接挂电话了(不返回结果)。然后
查好了,他会主动打电话给你。在这里老板通过“回电”这种方式来回调。
阻塞和非阻塞:程序在等待调用结果(消息,返回值)时的状态.
阻塞:调用结果返回之前,当前线程会被挂起。调用线程只有在得到结果之后才会返回
非阻塞:指在不能立刻得到结果之前,该调用不会阻塞当前线程
例子:
你打电话问书店老板有没有《分布式系统》这本书,你如果是阻塞式调用,你会一直把自己“挂起”,
直到得到这本书有没有的结果,如果是非阻塞式调用,你不管老板有没有告诉你,你自己先一边去玩了,
当然你也要偶尔过几分钟check一下老板有没有返回结果。
在这里阻塞与非阻塞与是否同步异步无关。跟老板通过什么方式回答你结果无关。
关于redis单线程的设计优势
1)绝大部分请求是纯粹的内存操作(非常快速)
2)采用单线程,避免了不必要的上下文切换和竞争条件
3)非阻塞IO
内部实现采用epoll,采用了epoll+自己实现的简单的事件框架。epoll中的读、写、关闭、连接都转化成了事件,然后利用epoll的多路复用特性,绝不在io上浪费一点时间
2)采用单线程,避免了不必要的上下文切换和竞争条件
3)非阻塞IO
内部实现采用epoll,采用了epoll+自己实现的简单的事件框架。epoll中的读、写、关闭、连接都转化成了事件,然后利用epoll的多路复用特性,绝不在io上浪费一点时间
4)单线程有时候比多线程更快,入需要考虑的并发、锁,也不会增加上下文切换代码更加简洁,集中处理问题;
个人见解:多核架构下,我还是看好多线程模型,但Redis的持久化、快照以及丰富的数据结构和运算功能更加强大一些。但Redis的持久化、快照以及丰富的数据结构和运算功能更加强大一些。
参考redis单线架构的解释:http://www.zhihu.com/question/19764056
相关推荐
### Redis基础入门知识点详解 #### 一、Redis简介与特性 Redis是一种开源的高性能键值存储系统,它支持多种数据结构如字符串(Strings)、哈希(Hashes)、列表(Lists)、集合(Sets)以及有序集合(Sorted Sets)等。与...
《Redis入门指南》是一本Redis的入门指导书籍,以通俗易懂的方式介绍了Redis基础与实践方面的知识,包括历史与特性、在开发和生产环境中部署运行Redis、数据类型与命令、使用Redis实现队列、事务、复制、管道、持久...
《Redis入门指南(第2版)》是一本Redis的入门指导书籍,以通俗易懂的方式介绍了Redis基础与实践方面的知识,包括历史与特性、在开发和生产环境中部署运行Redis、数据类型与命令、使用Redis实现队列、事务、复制、...
1. **Redis快速入门**:这部分通常会介绍如何安装Redis,包括在各种操作系统(如Linux、Windows、macOS)上的安装步骤。还会讲解Redis服务器的启动与停止,以及配置文件的基本设置。此外,客户端工具的使用,如`...
通过阅读《Redis 入门指南》,初学者可以系统地学习 Redis 的核心概念和技术,为后续的开发工作打下坚实的基础。在实践中不断探索和优化,可以更好地利用 Redis 解决实际问题,提升系统的性能和稳定性。
《Redis入门指南(第2版)》是一本Redis的入门指导书籍,以通俗易懂的方式介绍了Redis基础与实践方面的知识,包括历史与特性、在开发和生产环境中部署运行Redis、数据类型与命令、使用Redis实现队列、事务、复制、...
### Redis新手入门详解 #### 一、Redis简介与特点 Redis是一个开源的键值(Key-Value)数据库系统,因其高效性和灵活性,在数据处理领域占据着重要地位。它不仅仅局限于简单的键值存储,还提供了多种复杂的数据结构...
本书是一本Redis入门指导书籍,以通俗易懂的方式介绍了Redis基础与实践方面的知识,包括历史特性、在开发和生产环境中部署运行Redis、数据类型与命令、使用Redis实现队列、事务、复制、管道、持久化、优化Redis存储...
以下是对 Redis 入门指南的一些关键知识点的详细说明: 1. **Redis 数据类型** - **字符串(String)**:Redis 最基本的数据类型,可以存储字符串、数字等,支持自增、自减操作。 - **哈希(Hash)**:用于存储...
《Redis入门指南》是一本Redis的入门指导书籍,以通俗易懂的方式介绍了Redis基础与实践方面的知识,包括历史与特性、在开发和生产环境中部署运行Redis、数据类型与命令、使用Redis实现队列、事务、复制、管道、持久...
在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-...
本自学视频课程旨在帮助初学者从零基础快速掌握Redis的基本概念、常用操作以及如何实现高可用性。通过12个章节的深入讲解,将使您对Redis有全面而深入的理解。 第一章:Redis简介与安装 本章将介绍Redis的基本概念...
Redis 数据库入门教程 Redis 是一个开源的、使用 C 语言编写的、支持网络交互的、可基于内存也可持久化的 Key-Value 数据库。Redis 的官网地址是 redis.io。Vmware 在资助着 Redis 项目的开发和维护。 Redis 的...
《Redis入门指南》是一本Redis的入门指导书籍,以通俗易懂的方式介绍了Redis基础与实践方面的知识,包括历史与特性、在开发和生产环境中部署运行Redis、数据 ...