Redis

@Author:hanguixian
@Email:hn_hanguixian@163.com

二 Redis入门介绍

1 入门概述

1.1 是什么
  • Redis:REmote DIctionary Server(远程字典服务器)
  • 是完全开源免费的,用C语言编写的,遵守BSD协议,是一个高性能的(key/value)分布式内存数据库,基于内存运行并支持持久化的NoSQL数据库,是当前最热门的NoSql数据库之一,也被人们称为数据结构服务器
  • Redis 与其他 key - value 缓存产品有以下三个特点
    • Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用
    • Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储
    • Redis支持数据的备份,即master-slave模式的数据备份
1.2 能干嘛
  • 内存存储和持久化:redis支持异步将内存中的数据写到硬盘上,同时不影响继续服务
  • 取最新N个数据的操作,如:可以将最新的10条评论的ID放在Redis的List集合里面
  • 模拟类似于HttpSession这种需要设定过期时间的功能
  • 发布、订阅消息系统
  • 定时器、计数器
1.3 官网
  • http://redis.io/
  • http://www.redis.cn/(中文)
1.4 内容
  • 数据类型、基本操作和配置
  • 持久化和复制,RDB/AOF
  • 事务的控制
  • 复制

2 Redis的安装

2.1 windows版安装
  • 下载地址:https://github.com/dmajkic/redis/downloads
  • 下载到的Redis支持32bit和64bit。根据自己实际情况选择,将64bit的内容cp到自定义盘符安装目录取名redis。 如 C:\reids
  • 打开一个cmd窗口 使用cd命令切换目录到 C:\redis 运行 redis-server.exe redis.conf 。
  • 如果想方便的话,可以把redis的路径加到系统的环境变量里,这样就省得再输路径了,后面的那个redis.conf可以省略,如果省略,会启用默认的。输入之后,会显示如下界面:
  • 这时候另启一个cmd窗口,原来的不要关闭,不然就无法访问服务端了。
  • 切换到redis目录下运行 redis-cli.exe -h 127.0.0.1 -p 6379 。
  • 测试
    • 设置键值对 set myKey abc
    • 取出键值对 get myKey
2.2 Linux版安装

由于企业里面做Redis开发,99%都是Linux版的运用和安装,几乎不会涉及到Windows版

2.2.1 安装
  • 下载获得redis-x.x.x.tar.gz后将它放入我们的Linux目录/opt
  • /opt目录下,解压命令:tar -zxvf redis-x.x.x.tar.gz
  • 解压完成后出现文件夹:redis-x.x.x
  • 进入目录:cd redis-x.x.x
  • 在redis-x.x.x目录下执行make命令(需要gcc:yum install gcc-c++)
  • 如果make完成后继续执行make install
#安装
# https://redis.io/download
#下载,解压缩和编译Redis:
wget http://download.redis.io/releases/redis-5.0.2.tar.gz
tar xzf redis-5.0.2.tar.gz
cd redis-5.0.2
make
make install(可选)
#现在编译的二进制文件在src 目录中可用 。运行Redis:
src/redis-server
#您可以使用内置客户端与Redis进行交互:
src/redis-cli
redis> set foo bar
OK
redis> get foo
"bar"
2.2.2 查看默认安装目录:usr/local/bin
[root@xxxmmm ~]# cd /usr/local/bin/
[root@xxxmmm bin]# ll
total 32636
-rwxr-xr-x 1 root root 4365264 Nov 26 21:52 redis-benchmark
-rwxr-xr-x 1 root root 8086264 Nov 26 21:52 redis-check-aof
-rwxr-xr-x 1 root root 8086264 Nov 26 21:52 redis-check-rdb
-rwxr-xr-x 1 root root 4782296 Nov 26 21:52 redis-cli
lrwxrwxrwx 1 root root      12 Nov 26 21:52 redis-sentinel -> redis-server
-rwxr-xr-x 1 root root 8086264 Nov 26 21:52 redis-server
  • redis-benchmark:性能测试工具,可以在自己本子运行,看看自己本子性能如何
  • redis-check-aof:修复有问题的AOF文件,rdb和aof后面讲
  • redis-check-dump(redis-check-rdb)(有点小问题):修复有问题的dump.rdb文件
  • redis-cli:客户端,操作入口
  • redis-sentinel:redis集群使用
  • redis-server:Redis服务器启动命令
2.2.3 启动
  • 修改redis.conf文件将里面的daemonize no 改成 yes,让服务在后台启动
  • 将默认的redis.conf拷贝到自己定义好的一个路径下,比如/myconf
  • /usr/local/bin目录下运行redis-server,运行拷贝出存放了自定义conf文件目录下的redis.conf文件
redis-server /hanguixian/myredis/redis.conf
  • 单实例关闭:redis-cli shutdown
  • 多实例关闭,指定端口关闭:redis-cli -p 6379 shutdown
[root@xxxmmm bin]# redis-server /hanguixian/myredis/redis.conf
14788:C 27 Nov 2018 15:59:21.466 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
14788:C 27 Nov 2018 15:59:21.466 # Redis version=5.0.0, bits=64, commit=00000000, modified=0, pid=14788, just started
14788:C 27 Nov 2018 15:59:21.466 # Configuration loaded
[root@xxxmmm bin]# redis-cli -p 6379
127.0.0.1:6379>
[root@xxxmmm bin]# ps -ef|grep redis
root     12151     1  0 Nov25 ?        00:02:37 ./redis-server 127.0.0.1:6379
root     14797 14738  0 16:00 pts/0    00:00:00 grep --color=auto redis
[root@xxxmmm bin]# redis-cli
127.0.0.1:6379> SHUTDOWN
not connected> exit
[root@xxxmmm bin]# redis-cli -p 6379
Could not connect to Redis at 127.0.0.1:6379: Connection refused
not connected> exit
[root@xxxmmm bin]# ps -ef|grep redis
root     14819 14738  0 16:02 pts/0    00:00:00 grep --color=auto redis
[root@xxxmmm bin]# redis-server /hanguixian/myredis/redis.conf
14820:C 27 Nov 2018 16:02:44.066 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
14820:C 27 Nov 2018 16:02:44.066 # Redis version=5.0.0, bits=64, commit=00000000, modified=0, pid=14820, just started
14820:C 27 Nov 2018 16:02:44.066 # Configuration loaded
[root@xxxmmm bin]# ps -ef|grep redis
root     14821     1  0 16:02 ?        00:00:00 redis-server 127.0.0.1:6379
root     14826 14738  0 16:02 pts/0    00:00:00 grep --color=auto redis
[root@xxxmmm bin]# redis-cli shutdown
[root@xxxmmm bin]# ps -ef|grep redis
root     14829 14738  0 16:03 pts/0    00:00:00 grep --color=auto redis
2.3 Redis启动后杂项基础知识
2.3.1 单进程
  • 单进程模型来处理客户端的请求。对读写等事件的响应是通过对epoll函数的包装来做到的。Redis的实际处理速度完全依靠主进程的执行效率
  • epoll是Linux内核为处理大批量文件描述符而作了改进的epoll,是Linux下多路复用IO接口select/poll的增强版本,
    它能显著提高程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率。
2.3.2 基本了解
  • 默认16个数据库,类似数组下表从零开始,初始默认使用零号库
  • select命令切换数据库
  • dbsize查看当前数据库的key的数量
  • flushdb:清空当前库
  • Flushall;通杀全部库
  • 统一密码管理,16个库都是同样密码,要么都OK要么一个也连接不上
    • 设置数据库的数量,默认数据库为0,可以使用SELECT <dbid>命令在连接上指定数据库iddatabases 16
  • Redis索引都是从零开始
  • 为什么默认端口是6379
    • 6379在是手机按键上MERZ对应的号码,而MERZ取自意大利歌女Alessia Merz的名字。MERZ长期以来被antirez及其朋友当作愚蠢的代名词。

Redis 2.Redis入门介绍相关推荐

  1. 2、Redis入门介绍

    1.什么是Redis Redis:REmote DIctionary Server(远程字典服务器) 是完全开源免费的,用C语言编写的,遵守BSD协议,是一个高性能的(key/value)分布式内存数 ...

  2. Redis入门——介绍及安装

    Redis redis是当前比较热门的Nosql数据库之一 他是开源的,使用ANSI C语言编写的Key-Value存储系统,区别关系型数据库的二维表格形式存储 redis数据存储是缓存在内存中,包含 ...

  3. 关于redis 小白从入门到大神

    文章目录 一.Redis 介绍 一.简介 二.发展历史 二.Redis 的安装与配置 三.Redis 命令 四.Redis 发布订阅模式 五.Redis 事务操作 六.Redis 性能测试 七.Red ...

  4. redis原理快速入门知识点总结

    redis原理快速入门知识点总结 1. 项目中缓存是如何使用的?为什么要用缓存?缓存使用不当会造成什么后果? 为什么用缓存? 1.高性能: 一些需要复杂操作耗时查出来的结果,且确定后面不怎么变化,但是 ...

  5. 【Redis】Redis入门篇(1)

    Redis入门篇(1):涉及到Redis概念.Redis下载安装.命令行操作.Redis数据结构.持久化操作 Redis入门篇(2):了解使用Java客户端操作Redis.Redis连接池.实际应用案 ...

  6. 【Redis】Redis介绍与Redis3在Window下的安装

    转载请注明出处http://blog.csdn.net/qq_26525215 本文源自[大学之旅_谙忆的博客] 前言 其实在今天之前我都不知道Redis是什么东西.至于为什么知道了这个东西而且又要去 ...

  7. redis学习与入门~~~

    redis学习与入门~~~ 一. Redis 简介: 通常而言目前的数据库分类有几种,包括 SQL/NSQL,,关系数据库,键值数据库等等,分类的标准也不1,Redis本质上也是一种键值数据库的,但它 ...

  8. Redis五种数据类型介绍

    概述 Redis的键值可以使用物种数据类型:字符串,散列表,列表,集合,有序集合.本文详细介绍这五种数据类型的使用方法.本文命令介绍部分只是列举了基本的命令,至于具体的使用示例,可以参考Redis官方 ...

  9. Redis数据库15点介绍

    1.Redis简介 REmote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统.Redis是一个开源的使用ANSI ...

  10. redis数据库NoSQL的介绍安装和使用

    Redis使用 redis介绍 什么是NoSQL NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用难题.目前一些主流的NOSQL产品: NoSQL数据库的分类 ...

最新文章

  1. 韦世东:计划 35 岁「退休」的资深爬虫工程师
  2. table布局注意点
  3. unix环境高级编程-进程间通信
  4. Java举例include_Java StringUtils.getFilenameExtension方法代码示例
  5. git(一) 基础必备
  6. 使用mysqlbinlog恢复指定表
  7. iframe标签 父子页面传值
  8. linkbox php,win10 docker-toolsbox 搭建php开发环境的教程
  9. java输入月份求天数_java输入年份,月份,输出当月天数
  10. 分区安装linux,怎样安装Linux?
  11. TCP协议的三次握手及释放
  12. 10.大数据架构详解:从数据获取到深度学习 --- 存储是基础
  13. 黑客X档案PDF完整版(06年1月-12年12月)
  14. php 显示探针_UPUPW PHP探针安全版19.08.06
  15. IAR编译32K限制
  16. 1400——507B、1370C、1363B、1324D、1365C、1374D
  17. 2020年中国互联网数据中心行业现状及发展趋势分析
  18. 前端学习笔记 HTML5 保姆级教程
  19. Android setEnabled() 和 setClickable() 的区别
  20. h5中返回上一页常见的问题

热门文章

  1. linux服务器使用jupyter notebook时提示磁盘已满“Unexpected error while saving file:ipynb database or disk is full”
  2. 2020年最新的大数据学习路线及职业规划指南
  3. 【深度学习】tensorflow+keras电影评论文本分类
  4. 编程乐趣:C#中按字符串截取长字符串
  5. linux新建文件vim命令行,18次课(进入编辑模式、vim命令模式、vim实践、扩展)
  6. 枣庄虚拟服务器,枣庄云服务器
  7. PageHelper 分页不起作用的坑
  8. 【转载】这婚礼 太像样了
  9. MySQL 8.0.28 数据库完整备份及恢复以及binlog日志增量恢复
  10. 在局域网中安装和设置防病毒服务器(6)(转)