欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Redis(二):Redis入门介绍

程序员文章站 2022-06-02 12:54:35
入门概述 是什么 Redis:REmote DIctionary Server(远程字典服务器) Redis:REmote DIctionary Server(远程字典服务器) 是完全开源免费的,用C语言编写的,遵守BSD协议,是一个高性能的(Key/Value)分布式内存数据库,基于内存运行并支持 ......

入门概述

  • 是什么
    • redis:remote dictionary server(远程字典服务器)

Redis(二):Redis入门介绍

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

vmware+vmtools千里之行始于足下

  • vmware虚拟机的安装
  • centos或者redhad5的安装
    • 如何查看自己的linux是32位还是64位

 

 

 

Redis(二):Redis入门介绍

getconfig long_bit 返回是多少就是几位

    • 假如出现了不支持虚拟化的问题 

我的笔记本cpu是64位的,操作系统也是64位的,问题应该如虚拟机右下角提示所说,

Redis(二):Redis入门介绍

是“宿主机bios设置中的硬件虚拟化被禁用了。”需要打开笔记本bios中的ivt对虚拟化的支持。找到菜单“security”–“system security”,将virtualization technology(vtx)和virtualization technology directedi/o(vtd)设置为 enabled。保存并退出bios设置,重启电脑,

Redis(二):Redis入门介绍

Redis(二):Redis入门介绍

Redis(二):Redis入门介绍

  • vmtools的安装
  • 设置共享目录
  • 上述环境都ok后开始进行redis的服务器安装配置

redis的安装

  • windows版安装

window 下安装
下载地址: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可以省略,
如果省略,会启用默认的。输入之后,会显示如下界面:

Redis(二):Redis入门介绍

  • 重要提示:

Redis(二):Redis入门介绍

  • linux版安装
    • 下载获得redis-3.0.4.tar.gz后将它放入我们的linux目录/opt
    • /opt目录下,解压命令:tar -zxvf redis-3.0.4.tar.gz
    • 解压完成后出现文件夹:redis-3.0.4

Redis(二):Redis入门介绍

    • 进入目录:cd redis-3.0.4

 Redis(二):Redis入门介绍

    • 在redis-3.0.4目录下执行make命令
      • 运行make命令时故意出现的错误解析:
        • 安装gcc

gcc是linux下的一个编译程序,是c程序的编译工具。
gcc(gnu compiler collection) 是 gnu(gnu's not unix) 计划提供的编译器家族,它能够支持 c, c++, objective-c, fortran, java 和 ada 等等程序设计语言前端,同时能够运行在 x86, x86-64, ia-64, powerpc, sparc 和 alpha 等等几乎目前所有的硬件平台上。鉴于这些特征,以及 gcc 编译代码的高效性,使得 gcc 成为绝大多数*软件开发编译的首选工具。虽然对于程序员们来说,编译器只是一个工具,除了开发和维护人员,很少有人关注编译器的发展,但是 gcc 的影响力是如此之大,它的性能提升甚至有望改善所有的*软件的运行效率,同时它的内部结构的变化也体现出现代编译器发展的新特征。

 Redis(二):Redis入门介绍

          • 能上网:yum install gcc-c++
          • 不上网:
        • 二次make
        • jemalloc/jemalloc.h:没有那个文件或目录
          • 运行make distclean之后再make

Redis(二):Redis入门介绍

        • redis test(可以不用执行)

 Redis(二):Redis入门介绍

下载tcl的网址:http://www.linuxfromscratch.org/blfs/view/cvs/general/tcl.html

Redis(二):Redis入门介绍

安装tcl

Redis(二):Redis入门介绍

    • 如果make完成后继续执行make install

Redis(二):Redis入门介绍

    • 查看默认安装目录:usr/local/bin

Redis(二):Redis入门介绍

      • redis-benchmark:性能测试工具,可以在自己本子运行,看看自己本子性能如何
        • 服务启动起来后执行
      • redis-check-aof:修复有问题的aof文件,rdb和aof后面讲
      • redis-check-dump:修复有问题的dump.rdb文件
      • redis-cli:客户端,操作入口
      • redis-sentinel:redis集群使用
      • redis-server:redis服务器启动命令
    • 启动

Redis(二):Redis入门介绍

      • 修改redis.conf文件将里面的daemonize no 改成 yes,让服务在后台启动
      • 将默认的redis.conf拷贝到自己定义好的一个路径下,比如/myconf
      • 启动

 Redis(二):Redis入门介绍

      • 连通测试

 Redis(二):Redis入门介绍

      • /usr/local/bin目录下运行redis-server,运行拷贝出存放了自定义conf文件目录下的redis.conf文件
    • 永远的helloworld

 Redis(二):Redis入门介绍

    • 关闭

Redis(二):Redis入门介绍

      • 单实例关闭:redis-cli shutdown
      • 多实例关闭,指定端口关闭:redis-cli -p 6379 shutdown

redis启动后杂项基础知识讲解

  • 单进程
    • 单进程模型来处理客户端的请求。对读写等事件的响应是通过对epoll函数的包装来做到的。redis的实际处理速度完全依靠主进程的执行效率

    • epoll是linux内核为处理大批量文件描述符而作了改进的epoll,是linux下多路复用io接口select/poll的增强版本,它能显著提高程序在大量并发连接中只有少量活跃的情况下的系统cpu利用率。

  • 默认16个数据库,类似数组下表从零开始,初始默认使用零号库
    • 设置数据库的数量,默认数据库为0,可以使用select <dbid>命令在连接上指定数据库id databases 16 
  • select命令切换数据库
  • dbsize查看当前数据库的key的数量
  • flushdb:清空当前库
  • flushall;通杀全部库
  • 统一密码管理,16个库都是同样密码,要么都ok要么一个也连接不上
  • redis索引都是从零开始
  • 为什么默认端口是6379