1.Redis 简介

  1. Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。

1.1 Redis 与其他 key - value 缓存产品有以下三个特点:

  1. 1.Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
  2. 2.Redis不仅仅支持简单的key-value类型的数据,同时还提供listsetzsethash等数据结构的存储。
  3. 3.Redis支持数据的备份,即master-slave模式的数据备份。

1.2 Redis 优势

  1. 1.性能极高 Redis能读的速度是110000次/s,写的速度是81000次/s
  2. 2.丰富的数据类型 Redis支持二进制案例的 Strings, Lists, Hashes, Sets Ordered Sets 数据类型操作。
  3. 3.原子 Redis的所有操作都是原子性的,意思就是要么成功执行要么失败完全不执行。单个操作是原子性的。多个操作也支持事务,即原子性,通过MULTIEXEC指令包起来。
  4. 4.丰富的特性 Redis还支持 publish/subscribe, 通知, key 过期等等特性。

1.3 Redis与其他key-value存储有什么不同?

  1. Redis有着更为复杂的数据结构并且提供对他们的原子性操作,这是一个不同于其他数据库的进化路径。Redis的数据类型都是基于基本数据结构的同时对程序员透明,无需进行额外的抽象。
  2. Redis运行在内存中但是可以持久化到磁盘,所以在对不同数据集进行高速读写时需要权衡内存,因为数据量不能大于硬件内存。在内存数据库方面的另一个优点是,相比在磁盘上相同的复杂的数据结构,在内存中操作起来非常简单,这样Redis可以做很多内部复杂性很强的事情。同时,在磁盘格式方面他们是紧凑的以追加的方式产生的,因为他们并不需要进行随机访问。

2.安装Redis

选择在Linux下安装redis,现在采用虚拟机安装的centos7 进行安装的

1.安装gcc redis是c语言编写的

  1. yum install gcc-c++

2.下载redis安装包,在root目录下执行

  1. wget http://download.redis.io/releases/redis-5.0.7.tar.gz

3.解压redis安装包

  1. tar -zxvf redis-5.0.7.tar.gz

注意:我们把redis文件放到的/root目录下,别不小心删除了。也可以将它解压到其他地方。

4.进入redis目录

  1. cd redis-5.0.7

5.编译安装

  1. make
  2. make install

make完后 redis-2.8.17/src目录下会出现编译后的redis服务程序redis-server,还有用于测试的客户端程序redis-cli

make install之后我们可以在/usr/local/bin看到这些命令。

6.编辑配置文件(可选择不修改,而使用默认配置)

  1. 在解压后的redis-5.0.7目录下有redis的配置文件redis.conf,我们可以根据需要修改配置文件,最好复制一份该文件出来做修改。
  1. mkdir myconf
  2. cp redis.conf myconf/
  3. vim myconf/redis.conf
  1. 1.以守护进程的方式运行(后台运行),daemonize yes
  2. 2.绑定端口,port 6379 默认是6379 需要安全组开放端口
  3. 3.绑定IPbind 127.0.0.1
  4. 4.指定数据存放路径,dir /usr/local/redis/log rdb存放的路径
  5. 5.指定持久化方式,appendonly yes
  6. 更多配置及其说明参考:[https://www.runoob.com/redis/redis-conf.html](https://www.runoob.com/redis/redis-conf.html)

7.将redis加入到开机启动

  1. vim /etc/rc.local
  1. 在里面添加内容:
  1. /usr/local/bin/redis-server /root/redis-5.0.7/myconf/redis.conf

8.启动redis

  1. 启动redisredis-server
  2. 上面是使用redis默认配置启动的,如果我们需要使用我们刚刚自定义后的配置文件则使用命令:redis-server /root/redis-5.0.7/myconf/redis.conf
  1. [root@aliyun ~]# redis-server
  2. 30123:C 26 Nov 2019 14:03:51.237 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
  3. 30123:C 26 Nov 2019 14:03:51.237 # Redis version=5.0.7, bits=64, commit=00000000, modified=0, pid=30123, just started
  4. 30123:C 26 Nov 2019 14:03:51.237 # Warning: no config file specified, using the default config. In order to specify a config file use redis-server /path/to/redis.conf
  5. _._
  6. _.-``__ ''-._
  7. _.-`` `. `_. ''-._ Redis 5.0.7 (00000000/0) 64 bit
  8. .-`` .-```. ```\/ _.,_ ''-._
  9. ( ' , .-` | `, ) Running in standalone mode
  10. |`-._`-...-` __...-.``-._|'` _.-'| Port: 6379
  11. | `-._ `._ / _.-' | PID: 30123
  12. `-._ `-._ `-./ _.-' _.-'
  13. |`-._`-._ `-.__.-' _.-'_.-'|
  14. | `-._`-._ _.-'_.-' | http://redis.io
  15. `-._ `-._`-.__.-'_.-' _.-'
  16. |`-._`-._ `-.__.-' _.-'_.-'|
  17. | `-._`-._ _.-'_.-' |
  18. `-._ `-._`-.__.-'_.-' _.-'
  19. `-._ `-.__.-' _.-'
  20. `-._ _.-'
  21. `-.__.-'
  22. 30123:M 26 Nov 2019 14:03:51.239 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
  23. 30123:M 26 Nov 2019 14:03:51.239 # Server initialized
  24. 30123:M 26 Nov 2019 14:03:51.239 # WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. To fix this issue run the command 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' as root, and add it to your /etc/rc.local in order to retain the setting after a reboot. Redis must be restarted after THP is disabled.
  25. 30123:M 26 Nov 2019 14:03:51.239 * Ready to accept connections

9.通过客户端连接进入redis

  1. 如果我们直接输入命令redis-cli提示(redis-cli: command not found)的话,去/usr/local/bin目录下 执行./redis-cli
  2. 这种命令看起来不太舒服,或者我们直接安装一个redis客户端吧(在其他机器上连接redis服务器就是安装这个客户端):
  1. # 从redis官网下载redis-cli的压缩包
  2. wget http://download.redis.io/redis-stable.tar.gz
  3. # 解压下载下来的压缩包
  4. tar xvzf redis-stable.tar.gz
  5. # 进入redis-stable目录
  6. cd redis-stable
  7. # 安装
  8. make
  9. # 将redis-cli拷贝到/usr/local/bin/下,让redis-cli指令可以在任意目录下直接使用
  10. cp src/redis-cli /usr/local/bin/

之后我们正常执行redis-cli就可以进入本机的redis了。如果要进入远程redis服务则:redis-cli -h host -p port -a password

  1. # 这是我使用自己修改过的配置文件运行redis,并使用redis-cli进入了本机redis
  2. [root@aliyun ~]# redis-server redis-5.0.7/myconf/redis.conf
  3. 7240:C 26 Nov 2019 14:28:02.815 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
  4. 7240:C 26 Nov 2019 14:28:02.815 # Redis version=5.0.7, bits=64, commit=00000000, modified=0, pid=7240, just started
  5. 7240:C 26 Nov 2019 14:28:02.815 # Configuration loaded
  6. [root@aliyun ~]# redis-cli
  7. 127.0.0.1:6379>

10.停止redis

  1. 考虑到redis可能正在进行数据持久化,所以不能强行终止redis进程。正确的做法是发送shutdown命令。
  1. [root@aliyun ~]# redis-cli shutdown

在redis客户端中也可以直接执行:shutdown

另外有停止命令:

  1. [root@aliyun ~]# pkill redis

redis可以妥善处理SIGTERM信号,所以使用“kill redis进程pid”也可以正常结束redis,效果与shutdown一样。

3.Redis基础键命令

  1. 前面提到,Redis是一个键值(key-value)数据库,所以有很多键命令,键命令用于管理redis的键(key)。

常用命令:

  1. 1 DEL key # 该命令用于在 key 存在时删除 key。
  2. 2 DUMP key # 序列化给定 key ,并返回被序列化的值。
  3. 3 EXISTS key # 检查给定 key 是否存在。
  4. 4 EXPIRE key seconds # 为给定 key 设置过期时间,以秒计。
  5. 5 EXPIREAT key timestamp # EXPIREAT 的作用和 EXPIRE 类似,都用于为 key 设置过期时间。 不同在于 EXPIREAT 命令接受的时间参数是 UNIX 时间戳(unix timestamp)。
  6. 6 PEXPIRE key milliseconds # 设置 key 的过期时间以毫秒计。
  7. 7 PEXPIREAT key milliseconds-timestamp # 设置 key 过期时间的时间戳(unix timestamp) 以毫秒计
  8. 8 KEYS pattern # 查找所有符合给定模式( pattern)的 key 。
  9. 9 MOVE key db # 将当前数据库的 key 移动到给定的数据库 db 当中。
  10. 10 PERSIST key # 移除 key 的过期时间,key 将持久保持。
  11. 11 PTTL key # 以毫秒为单位返回 key 的剩余的过期时间。
  12. 12 TTL key # 以秒为单位,返回给定 key 的剩余生存时间(TTL, time to live)。
  13. 13 RANDOMKEY # 从当前数据库中随机返回一个 key 。
  14. 14 RENAME key newkey # 修改 key 的名称
  15. 15 RENAMENX key newkey # 仅当 newkey 不存在时,将 key 改名为 newkey 。
  16. 16 TYPE key # 返回 key 所储存的值的类型。

更多命令请参考官网:https://redis.io/commands

Redis-1-简介与安装的更多相关文章

  1. Redis系列(一):Redis的简介与安装

    原文链接(转载请注明出处):Redis系列(一):Redis的简介与安装 什么是 Redis Redis 是一个使用ANSI C 编写的开源.支持网络协议.基于内存.可选持久性的键值对数据库,它是一个 ...

  2. Redis详解(一)------ redis的简介与安装

    工作中一直在用 Redis,但是一直没有进行系统的总结,这个系列的博客将整体的介绍 Redis 的用法. 1.Redis 的简介 Redis:REmote DIctionary Server(远程字典 ...

  3. Redis 详解 (一) redis的简介和安装

    目录 1.Redis 的简介 2.Redis 下载 3.安装环境 4.编译安装 5.启动Redis 6.关闭Redis 7.注意事项 工作中一直在用 Redis,但是一直没有进行系统的总结,这个系列的 ...

  4. Redis的简介与安装(windows)

    1.简介 Redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串). list(链表).set(集合).zset(sorte ...

  5. Redis的简介与安装

    1.简介 Redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(sorted ...

  6. 【Redis】简介与安装

    Linux 安装 [root@redis ~]# wget http://download.redis.io/releases/redis-2.8.19.tar.gz 解压缩redis[root@ha ...

  7. Redis 小白指南(一)- 简介、安装、GUI 和 C# 驱动介绍

    Redis 小白指南(一)- 简介.安装.GUI 和 C# 驱动介绍 目录 简介 安装 入门指令 GUI 工具 C# 驱动介绍 简介 ANSI C 编写,开源,基于内存,可持久化,一个键值对的数据库, ...

  8. Redis简介与安装

    目录 Redis概述与安装使用 Redis概述与安装使用 Author:SimpleWu GitHub-redis Redis简介 Redis英语全称:( REmote DIctionary Serv ...

  9. redis简介及安装

    1 redis简介及安装 1.1 Redis是什么 REmote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统. 首 ...

  10. redis简介、安装、配置和数据类型

    redis简介.安装.配置和数据类型 redis简介 Redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理. 它支持字符串.哈希表.列表.集合.有序集合, ...

随机推荐

  1. ios浏览器调试踩坑(1)----mescroll.js和vue-scroller

    主要记录在ios浏览器出现触摸无限加载的情况 使用vue-scroller和mescroll.js/mescroll.vue先踩ios浏览器默认滑动会影响mescroll的方法调用. 首先给公共js加 ...

  2. swift混编

    http://blog.csdn.net/fengsh998/article/details/34440159

  3. 谁有好的oracle数据库学习书籍,麻烦提供一下,感激不尽

    作为一个IT人员,想深入学习一下oracle,以前都只是懂基本的语法,CRUD 数据库设计,数据库优化,底层完全不懂,哪位仁兄有好的书籍可以推荐一下,感激不尽.

  4. 3-2-Pandas 索引

    Pandas章节应用的数据可以在以下链接下载:  https://files.cnblogs.com/files/AI-robort/Titanic_Data-master.zip In [4]: i ...

  5. 201871020225-牟星源《面向对象程序设计(java)》第七周学习总结

    201871020225-牟星源<面向对象程序设计(java)>第七周学习总结 博文正文开头: 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu- ...

  6. xSS-Reflected

    反射性(非持久性XSS),藏在URL中 一般用户访问恶意链接执行 Low <?php header ("X-XSS-Protection: 0"); // Is there ...

  7. 洛谷 P1182 数列分段 Section II

    洛谷 P1182 数列分段 Section II 洛谷传送门 题目描述 对于给定的一个长度为N的正整数数列A-iA−i,现要将其分成M(M≤N)M(M≤N)段,并要求每段连续,且每段和的最大值最小. ...

  8. koa2中的ctx是什么?

    为了试图搞明白,用console.log将它输出 const Koa = require('koa'); const app = new Koa(); app.use(ctx => { ctx. ...

  9. calc()在less中编译报错

    calc()对大家来说,或许很陌生,不太会相信calc()是css中的部分.因为看其外表像个函数,既然是函数为何又出现在CSS中呢? calc() 函数用于动态计算长度值. 需要注意的是,运算符前后都 ...

  10. 官方一步解决各种Windows更新问题

    原文部分: 修复 Windows 更新问题 适用于: Windows 8.1Windows 10Windows 7   此分布指南有什么作用? 此分步指南提供的步骤可修复 Windows 更新的问题, ...