1.Redis是什么

1)REmote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统。

2)Redis的特点

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

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

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

3)Redis的优势

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

4)Redis与其他key-valye存储有什么不同

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

(以上内容摘自菜鸟教程)

2.Redis在Window10系统的安装

1)Redis的下载。网址:https://github.com/tporadowski/redis/releases

  (1)点击图中红框内容下载Redis包(写文时间是2020.11.13,下载的Redis包是5.0.10版本)。Redis有64和32版本,根据自己电脑情况选择

  (2)下载以后解压缩到C盘,然后更改文件夹的名字为redis。打开文件夹以后,文件内容如下:

  (3)打开一个cmd窗口,使用 cd 命令切换目录到 C:\redis 运行此命令:redis-server.exe redis.windows.conf

如果想方便的话,可以把 redis 的路径加到系统的环境变量里,这样就省得再输路径了,后面的那个 redis.windows.conf 可以省略,如果省略,会启用默认的。输入之后,会显示如下界面:

  (4)打开另一个cmd窗口,不要关闭上一个,关闭以后会关闭服务的。

还是在cmd中用cd C:/redis命令进入目录,然后运行此命令:

 redis-cli.exe -h 127.0.0.1 -p 6379

设置键值对:

set myKey abc

取出键值对:

get myKey

效果如下图:

这样就安装好了。

  (5)多说几句:以后如果想使用Redis,需要再次打开此窗口,不然不能用。(也就是使用第(3)步)

也可以把Redis添加到服务中,开机启动,这样就不用每次开机就打开了。之前写过一个帖子,如果想把redis放到服务中,请移步:

https://www.cnblogs.com/littletreeshang/p/10772988.html

帖子内容如下: 

3.Redis配置

(1)获取配置

Redis的配置文件在Redis目录里面,在我这里就是C:/Redis目录下。Redis的配置文件叫 redis.windows.conf。

查看配置也可以通过命令查看,语法格式如下:

redis 127.0.0.1:6379> CONFIG GET CONFIG_SETTING_NAME

例子:

redis 127.0.0.1:6379> CONFIG GET loglevel

1) "loglevel"
2) "notice"

如图:

如果想获取所有配置,使用*:

redis 127.0.0.1:6379> CONFIG GET *

获取所有配置结果如图:

(2)编辑配置

编辑配置有两种方式

1)直接修改配置文件:redis.windows.conf;

2)通过命令修改配置。

通过命令修改语法:

redis 127.0.0.1:6379> CONFIG SET CONFIG_SETTING_NAME NEW_CONFIG_VALUE

例子:

redis 127.0.0.1:6379> CONFIG SET loglevel "notice"
OK
redis 127.0.0.1:6379> CONFIG GET loglevel 1) "loglevel"
2) "notice"

如图:

(3)配置文件说明(以当前版本(5.0.10)为例如果要是不确定的或者没查到的说明前面加*,如果命令后面带:就是后面的值不能以空格隔开)

说明:这里就先整理一下常用的,其他的等熟悉以后再补充。在找命令的时候发现一个比较厉害的博客,他那里的Redis配置详解系列讲解的特别特别好,而且非常的详细,请大家移步http://www.cs-cjl.com/

1)dbfilename dump.rdb
  镜像备份文件的文件名,默认为 dump.rdb
2) requirepass foobared
  设置客户端连接后进行任何其他指定前需要使用的密码。警告:因为redis 速度相当快,所以在一台比较好的服务器下,一个外部的用户可以在一秒钟进行150K 次的密码尝试,这意味着你需要指定非常非常强大的密码来防止暴力破解。
3)masterauth
  当主数据库连接需要密码验证时,在这里指定
4)cluster-announce-ip
  *没有查到具体的用法,但是好像是搭建Redis集群的时候的对外IP
5)unixsocket
  *redis支持通过unix socket方式来接收请求,可以通过unixsocket配置项来指定unix socket文件的路径,并通过unixsocketperm来指定文件的权限
6)logfile
  配置log 文件地址,默认使用标准输出,即打印在命令行终端的窗口上,修改为日志文件目录。
  日志记录方式,默认为标准输出,如果配置 Redis 为守护进程方式运行,而这里又配置为日志记录方式为标准输出,则日志将会发送给 /dev/null
7)pidfile
  当 Redis 以守护进程方式运行时,Redis 默认会把 pid 写入 /var/run/redis.pid 文件,可以通过 pidfile 指定。你可以配置到其他地址。当运行多个redis 服务时,需要指定不同的pid 文件和端口
8)slave-announce-ip
9)replica-announce-ip
10)maxmemory 0
  指定 Redis 最大内存限制,Redis 在启动时会把数据加载到内存中,达到最大内存后,Redis 会先尝试清除已到期或即将到期的 Key,当此方法处理 后,仍然到达最大内存设置,将无法再进行写入操作,但仍然可以进行读取操作。Redis 新的 vm 机制,会把 Key 存放内存,Value 会存放在 swap 区
11)proto-max-bulk-len 536870912
12)client-query-buffer-limit 1073741824
13)maxmemory-samples 5
14)lfu-log-factor 10
  Redis LFU 回收策略。
15)lfu-decay-time 1
16)timeout 0
  当客户端闲置多长秒后关闭连接,如果指定为 0 ,表示关闭该功能。
17)active-defrag-threshold-lower 10
18)active-defrag-threshold-upper 100
19)active-defrag-ignore-bytes 104857600
20)active-defrag-cycle-min 5
21)active-defrag-cycle-max 75
22)active-defrag-max-scan-fields 1000
23)auto-aof-rewrite-percentage 100
24)auto-aof-rewrite-min-size 67108864
25)hash-max-ziplist-entries 512
26)hash-max-ziplist-value 64
27)stream-node-max-bytes 4096
28)stream-node-max-entries 100
29)list-max-ziplist-size -2
30)list-compress-depth 0
31)set-max-intset-entries 512
32)zset-max-ziplist-entries 128
33)zset-max-ziplist-value 64
34)hll-sparse-max-bytes 3000
35)lua-time-limit 5000
36)slowlog-log-slower-than 10000
37)latency-monitor-threshold 0
38)slowlog-max-len 128
39)port 6379
40)cluster-announce-port 0
41)cluster-announce-bus-port 0
42)tcp-backlog 511
43)databases 16
  设置数据库的数量,默认数据库为0,可以使用SELECT 命令在连接上指定数据库id。
44)repl-ping-slave-period 10
45)repl-ping-replica-period 10
46)repl-timeout 60
47)repl-backlog-size 1048576
48)repl-backlog-ttl 3600
49)maxclients 10000
  指定 Redis 最大内存限制,Redis 在启动时会把数据加载到内存中,达到最大内存后,Redis 会先尝试清除已到期或即将到期的 Key,当此方法处理 后,仍然到达最大内存设置,将无法再进行写入操作,但仍然可以进行读取操作。Redis 新的 vm 机制,会把 Key 存放内存,Value 会存放在 swap 区
50)watchdog-period 0
51)slave-priority 100
52)replica-priority 100
53)slave-announce-port 0
  见8)
54)replica-announce-port 0
  见9)
55)min-slaves-to-write 0
56)min-replicas-to-write 0
57)min-slaves-max-lag 10
58)min-replicas-max-lag 10
59)hz 10
60)cluster-node-timeout 15000
61)cluster-migration-barrier 1
62)cluster-slave-validity-factor 10
63)cluster-replica-validity-factor 10
64)repl-diskless-sync-delay 5
65)tcp-keepalive 0
66)cluster-require-full-coverage yes
67)cluster-slave-no-failover no
68)cluster-replica-no-failover no
69)no-appendfsync-on-rewrite no
70)slave-serve-stale-data yes
71)replica-serve-stale-data yes
72)slave-read-only yes
73)replica-read-only yes
74)slave-ignore-maxmemory yes
75)replica-ignore-maxmemory yes
76)stop-writes-on-bgsave-error yes
77)daemonize no
78)rdbcompression yes
  指定存储至本地数据库时是否压缩数据,默认为 yes,Redis 采用 LZF 压缩,如果为了节省 CPU 时间,可以关闭该选项,但会导致数据库文件变的巨大。
79)rdbchecksum yes
80)activerehashing yes
  指定是否激活重置哈希,默认为开启。
81)activedefrag no
  是否启用碎片整理。
82)protected-mode yes
83)repl-disable-tcp-nodelay no
84)repl-diskless-sync no
85)aof-rewrite-incremental-fsync yes
86)rdb-save-incremental-fsync yes
87)aof-load-truncated yes
88)aof-use-rdb-preamble yes
89)lazyfree-lazy-eviction no
90)lazyfree-lazy-expire no
91)lazyfree-lazy-server-del no
92)slave-lazy-flush no
93)replica-lazy-flush no
94)dynamic-hz yes
95)maxmemory-policy noeviction
  当内存使用值到达 maxmemory 时使用的删除策略,默认值为 noeviction。
  注意:在内存到达限值,并且没有合适的键被删除的情况下,无论选择的是什么过期策略,Redis 都会返回出错。
96)loglevel notice 
  指定日志记录级别,Redis 总共支持四个级别:debug、verbose、notice、warning,默认为 notice
97)supervised no
98)appendfsync everysec
  指定更新日志条件,共有 3 个可选值: no:表示等操作系统进行数据缓存同步到磁盘(快)
always:表示每次更新操作后手动调用 fsync() 将数据写到磁盘(慢,安全)
everysec:表示每秒同步一次(折中,默认值) 99)appendonly no
  指定是否在每次更新操作后进行日志记录,Redis 在默认情况下是异步的把数据写入磁盘,如果不开启,可能会在断电时导致一段时间内的数据丢失。因为 redis 本身同步数据文件是按上面 save 条件来同步的,所以有的数据会在一段时间内只存在于内存中。默认为 no
100)dir C:\\redis
  指定本地数据库存放目录
101)save: 900 1 300 10 60 10000
  指定在多长时间内,有多少次更新操作,就将数据同步到数据文件,可以多个条件配合。
  Redis 默认配置文件中提供了三个条件:
  save 900 1
  save 300 10
  save 60 10000
  分别表示 900 秒(15 分钟)内有 1 个更改,300 秒(5 分钟)内有 10 个更改以及 60 秒内有 10000 个更改。
105)client-output-buffer-limit: normal 0 0 0 slave 268435456 67108864 60 pubsub 33554432 8388608 60
103)unixsocketperm 0
104)slaveof <masterip> <masterport>
  设置当本机为 slave 服务时,设置 master 服务的 IP 地址及端口,在 Redis 启动时,它会自动从 master 进行数据同步
105)notify-keyspace-events 
106)bind 127.0.0.1
  绑定的主机地址

大概就是这样了,如果有什么错误或者建议,希望大家从评论区指出,大家一起学习一起进步~

Redis学习(一)——初识Redis的更多相关文章

  1. [ecmagent][redis学习][1初识redis] python操作redis

    #1 连接redis # 连接redis -- import redis -- 使用端口连接redis conn = redis.Redis(host=) -- 使用套接字连接 r = redis.R ...

  2. [ecmagent][redis学习][1初识redis] redis安装+redis快速教程+python操作redis

    # redis安装 # redis安装教程 -- 服务器(ubuntu)安装redis服务 sudo apt-get install redis-server -- 源码安装 -- $ wget ht ...

  3. Redis学习十一:Redis的Java客户端Jedis

    一.安装JDK tar -zxvf jdk-7u67-linux-i586.tar.gz vi /etc/profile 重启一次Centos 编码验证 二.安装eclipse 三.Jedis所需要的 ...

  4. Redis学习笔记(4) Redis事务、生存时间及排序

    1. Redis事务 Redis中的事务(transaction)是一组命令的集合,一个事务中的命令要么都执行,要么都不执行.事务的原理是先将属于一个事务的命令发送给Redis,然后再让Redis依次 ...

  5. redis学习之三配置文件redis.conf 的含义

    摘自http://www.runoob.com/redis/redis-conf.html 安装redis之后的第一件事,我就开始配置密码,结果总是不生效,而我居然还没想到原因.今天突然用命令行设置了 ...

  6. Redis学习笔记(1) Redis介绍及基础

    1. Redis的特性 (1) 存储结构 Redis(Remote Dictionary Server,远程字典服务器)是以字典结构存储数据,并允许其他应用通过TCP协议读写字典中的内容.Redis支 ...

  7. Redis学习——详解Redis配置文件(三)

    一.Redis脚本简介 在我们介绍Redis的配置文件之前,我们先来说一下Redis安装完成后生成的几个可执行文件: redis-server .redis-cli .redis-benchmark ...

  8. 【Redis学习之三】Redis单节点安装

    本文介绍两个版本:redis-2.8.18.tar.gz 和 redis-3.0.0-rc2.tar.gz,均采用源码安装方式 一.redis3.0 部署环境 redis-3.0.0-rc2.tar. ...

  9. Redis学习二:Redis入门介绍

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

随机推荐

  1. 每日一题 LeetCode 491. 递增子序列 【递推】【递增子序列】【动态规划】

    题目链接 https://leetcode-cn.com/problems/increasing-subsequences/ 题目说明 题解 主要方法:递推:动态规划 解释说明: 数据表示:观察数据范 ...

  2. 实验五 Internet与网络工具的使用

    实验五 Internet与网络工具的使用 [实验目的]⑴.FTP服务器的架设和客户端的使用. ⑵.使用云盘和云笔记应用 ⑶.运用QQ的远程协助功能. (4).默认安装foxmail软件,进行邮件的收发 ...

  3. Prometheus 入门教程(一):Prometheus 快速入门

    文章首发于[陈树义]公众号,点击跳转到原文:https://mp.weixin.qq.com/s/ZXlBPHGcWeYh2hjBzacc3A Prometheus 是任何一个高级工程师必须要掌握的技 ...

  4. oh my zsh 常用插件

    date: "2020-10-18T12:36:00+08:00" title: "oh my zsh 常用插件" tags: ["zsh" ...

  5. vue知识点16

    1. 数组用下标改变,或者对象增加属性,这样的改变数据   是不能触发视图更新的,要用 Vue.set(对象,属性,值) 或this.$set(对象,属性,值) 2. this.$forceUpdat ...

  6. MVC单文件上传

    前言 现在来写下最基础的单文件上传,完成后可以扩展成各种不同的上传方式 HTML <input id="Input_File" type="file" / ...

  7. 一篇文章 图解Python 玩转Python

    0 Python 解释器:1.Python数据结构:2.变量与运算符3 Python 流程控制 4 Python 文件处理5 python 输入输出6 Python 异常7 Python 函数和模块8 ...

  8. 010_Markdown学习

    目录 Markdown学习 标题 三级标题 四级标题 五级标题 六级标题 字体 引用 分割线 图片 超链接 列表 表格 代码 Markdown学习 标题 三级标题 四级标题 五级标题 六级标题 字体 ...

  9. 深信服edr 2020HW行动0day 漏洞细节

    漏洞1 一下4个漏洞触发都在其他文件,这里只进行漏洞点的分析. 漏洞点tool\log\c.php 启动c.php大约140行-148行 这里执行了两个方法 show_form 与main 这里追踪s ...

  10. Tensorflow学习笔记No.9

    模型的保存与恢复 介绍一些常见的模型保存与恢复方法,以及如何使用回调函数保存模型. 1.保存完整模型 model.save()方法可以保存完整的模型,包括模型的架构.模型的权重以及优化器. model ...