Redis 安装、可视化管理工具、数据类型、模式类型、键(key)命令

Redis 官网  
Redis on Windows 3.2 安装包下载地址  
Redis 可视化管理工具【Redis Desktop Manager】  
Redis 命令参考(红色)
Redis 命令参考(蓝色)
Redis 数据库学习教程
Redis 教程 | 菜鸟教程
Redis 常用命令    
Redis 性能测试
操作 Redis 各种数据类型   
C# Redis 代码 【CSDN 资源下载】
ASP.NET Core 和 Redis  

=========【Window 介绍】=========
Redis 是单线程【已支持多线程】
Redis 运行在 内存 中但是可以 持久化到磁盘

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

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

=========【安装】=========
安装路径:C:\Program Files\Redis\
下载文件 Redis-x64-3.2.100.zip 


下载好 redis 安装包之后,Redis 安装 Window 下安装 打开文件夹,内容如下:

【注意:也可查看本地计算机安装路径查看,比如:C:\Program Files\Redis】

Redis 配置文件位于 Redis 安装目录下,文件名为 redis.conf【Windows 名为 redis.windows.conf】

打开一个 cmd 窗口 使用 cd 命令切换目录到 C:\Program Files\Redis 运行:

redis-server.exe redis.windows.conf

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


查看Redis版本

redis-server --version
或
redis-server -v

这时候另启一个 cmd 窗口,原来的不要关闭,不然就无法访问服务端了。
切换到 redis 目录下运行:

redis-cli.exe -h 127.0.0.1 -p 6379

设置键值对:

set myKey abc

--EXPIRE或者PEXPIRE,设置过期时间,以秒或者毫秒为数据库中的某个键设置生存时间【expire key 5】
expire age 20

取出键值对:

--单个key
get myKey

--查找所有的key
keys *

--清空所有键值
flushall

--所有数据库
config get databases

*、Redis 配置    

redis 127.0.0.1:6379> CONFIG GET *                   --获取所有配置项
redis 127.0.0.1:6379> CONFIG GET loglevel            --查看配置项
redis 127.0.0.1:6379> config get port
redis 127.0.0.1:6379> config get requirepass         # 查看密码

redis 127.0.0.1:6379> config set                     # 设置配置项的内容
redis 127.0.0.1:6379> CONFIG SET loglevel "notice"   # 编辑、修改配置
redis 127.0.0.1:6379> config set requirepass 123456  # 设置密码,重启失效

发布/订阅

--创建并订阅频道 redisChat
127.0.0.1:6379> SUBSCRIBE redisChat

--在 redisChat 频道发布消息
127.0.0.1:6379> PUBLISH redisChat "Redis is a great caching technique"

安全【设置密码】

--查看密码
127.0.0.1:6379> CONFIG get requirepass

--设置密码
127.0.0.1:6379> CONFIG set requirepass "runoob"

--客户端连接 redis 服务就需要密码验证,否则无法执行命令【验证密码是否正确】
127.0.0.1:6379> AUTH "runoob"

--打印字符串
127.0.0.1:6379> ECHO message

--查看服务是否运行
127.0.0.1:6379> PING

--关闭当前连接
127.0.0.1:6379> QUIT

--切换到指定的数据库,默认情况下,Redis有16个数据库,从0号数据库到15号数据库【SELECT index】
127.0.0.1:6379> SELECT 1

Redis 服务器命令

--获取连接到服务器的客户端连接列表
127.0.0.1:6379> CLIENT LIST

--获取连接的名称
127.0.0.1:6379> CLIENT GETNAME

--设置当前连接的名称
127.0.0.1:6379> CLIENT SETNAME connection-name

=========【Window 安装 msi】=========
1、从以下网站下载Redis服务器,下载地址如下:
     https://github.com/MSOpenTech/redis/releases
     https://github.com/MicrosoftArchive/redis/releases

     可视化的客户端,下载地址 如下:https://github.com/uglide/RedisDesktopManager

2、有“msi”和“zip”
     下载 Redis-x64-xxx.msi 版本

3、设置 Redis 的服务端口,默认为 6379,默认就好,单击 next

4、选择安装的路径,并且打上勾(这个非常重要),添加到 path 是把 Redis 设置成 windows 下的服务,不然你每次都要在该目录下启动命令 redis-server redis.windows.conf,但是只要一关闭 cmd 窗口,redis 就会消失,这样就比较麻烦。

5、设置 Max Memory,然后 next 进入安装
     如果 redis 的应用场景是作为数据库使用,那不要设置这个选项,因为数据库是不能容忍丢失数据的。
     如果作为临时缓存那就得看自己的需要(我这里设置了 1024M 的最大内存限制)
     指定 Redis 最大内存限制,Redis 在启动时会把数据加载到内存中,达到最大内存后,Redis 会先尝试清除已到期或即将到期的 Key,当此方法处理 后,仍然到达最大内存设置,将无法再进行写入操作,但仍然可以进行读取操作。
     Redis 新的 vm 机制,会把 Key 存放内存,Value 会存放在 swap区。

6、测试所安装的Redis
     可以在 “计算机管理→服务与应用程序→服务” 看到Redis正在运行
     也可以将它停止(不停止会出现错误代码为 18012 的错误,表示本机端口 6379 被占用),然后在 cmd 窗口进入Redis的安装路径的根目录
     输入命令 redis-server.exe redis.windows.conf,出现下图证明 Redis 服务启动成功:

     下面进行测试:
     你可以在 Redis 的安装根目录下找到 redis-cli.exe 文件启动(我用的是这种方法),或在 cmd 中先进入 Redis 的安装根目录用命令 redis-cli.exe -h 192.168.10.61 -p 6379(注意换成自己的 IP,本地可以是 127.0.0.1)的方式打开
     测试方法:设置键值对,取出键值对(我这里键值对是 peng)

=========【Window 安装 zip】=========
1、从以下网站下载Redis服务器,下载地址如下:
     https://github.com/MSOpenTech/redis/releases
     https://github.com/MicrosoftArchive/redis/releases

     可视化的客户端,下载地址如下:
     https://github.com/uglide/RedisDesktopManager 

2、有“msi”和“zip”
     Redis 支持 32 位和 64 位。这个需要根据你系统平台的实际情况选择,这里我们下载 Redis-x64-xxx.zip压缩包到 C 盘,解压后,将文件夹重新命名为 redis。

3、打开一个 cmd 窗口 使用cd命令切换目录到 C:\redis 运行 redis-server.exe redis.windows.conf 。
     如果想方便的话,可以把 redis 的路径加到系统的环境变量里,这样就省得再输路径了,后面的那个 redis.windows.conf 可以省略,如果省略,会启用默认的。输入之后,会显示如下界面:
     注意:此次目的是用于以后不再输入文件路径(减少输入路径带来的不便)

4、将“C:\Program Files\Redis”路径加入系统环境变量里面
     电脑右键 - 属性 - 高级系统设置 - 高级 - 环境变量 - 用户变量中选择“Path”变量 - 编辑 - 新建
     控制面板 - 系统和安全 - 系统 - 高级系统设置 - 高级 - 环境变量 - 用户变量中选择“Path”变量 - 编辑 - 新建

3、安装完毕之后,使用WIN+R弹出“运行”窗体,输入“services.msc”打开系统“服务”窗体,我们可以看到如下的信息:
     注意:如果想以此作为服务器,强烈建议设置服务的启动类型为“自动”(保持默认值即可)

6、运行命令
     redis-cli

7、如果没有设置环境变量,必须先切换到redis目录下,再输入命令
     这时候另启一个cmd窗口,原来的不要关闭,不然就无法访问服务端了。
     切换到redis目录下运行 redis-cli.exe -h 127.0.0.1 -p 6379 。
     设置键值对 set myKey abc
     取出键值对 get myKey
=========【Redis 可视化客户端管理工具】=========
RedisInsight:是 Redis 官方出品的可视化管理工具,可用于设计、开发、优化你的 Redis 应用
Redis Client
Redis Desktop Manager
Another Redis Desktop Manager
RedisPlus
Redis Studio
=========【Redis 文件说明】=========
redis-server              redis服务器
redis-cli                    redis命令行客户端
redis-benchmark      redis性能测试工具【压力测试工具】
redis-check-aof        AOF文件修复工具
redis-check-dump    RDB文件检查工具
=========【Redis 命令】=========
1、Redis 客户端的基本语法为:
     语法:$ redis-cli

     实例:
     启动 redis 客户端,打开终端并输入命令 redis-cli。该命令会连接本地的 redis 服务。
     $redis-cli
     redis 127.0.0.1:6379>
     redis 127.0.0.1:6379> PING

     在以上实例中我们连接到本地的 redis 服务并执行 PING 命令,该命令用于检测 redis 服务是否启动。

3、在远程服务上执行命令(连接测试)
     语法:$ redis-cli -h host -p port -a password

     实例:
     主机为 127.0.0.1,端口为 6379 ,密码为 mypass
     $redis-cli -h 127.0.0.1 -p 6379 -a "mypass"(有密码)
     $redis-cli –h 127.0.0.1 –p 6379(无密码)

4、启动redis
     在命令行窗口中输入 redis-server redis.windows.conf 【该命令保存为文件 startup.bat,下次就可以直接启动了。】

5、redis作为windows服务启动方式
     redis-server --service-install redis.windows-service.conf
     启动服务:redis-server --service-start
     停止服务:redis-server --service-stop
     卸载服务:redis-server --service-uninstall 
     这样就可以一种开着服务,不想用的时候就关上。

=========【Redis 性能测试】=========  
同时执行 10000 个请求来检测性能
redis-benchmark.exe -c 100 -n 10000
redis-benchmark -h 127.0.0.1 -p 6379 -c 50 -n 10000
redis-benchmark -h 127.0.0.1 -p 6379 -t set,lpush -n 10000 -q

序号选项描述默认值
1-h <hostname>指定服务器主机名127.0.0.1
2-p <port> 指定服务器端口6379
3-s <socket> 指定服务器 socket
4-a <password>Password for Redis Auth
5-c <clients>指定并发连接数50
6-n <requests>指定请求数100000
7-d <size>Data size of SET/GET value in bytes2
8-dbnum <db>SELECT the specified db number0
9-k <boolean>1=keep alive 0=reconnect1
10-r <keyspacelen>SET/GET/INCR 使用随机 key,SADD 使用随机值
11-P <numreq>通过管道传输 <numreq> 请求
12-q强制退出 redis。仅显示 query/sec 值
13--csv以 CSV 格式输出
14-l生成循环,永久执行测试
15-t <tests>仅运行以逗号分隔的测试命令列表。
16-IIdle 模式。仅打开 N 个 idle 连接并等待。 

=========【Redis 配置】=========
根目录下 redis.windows.conf 文件
下载redis配置文件:https://download.redis.io/redis-stable/redis.conf 

1. port 6379  // 端口号
2. bind 127.0.0.1   // 实例绑定的访问地址
3. requirepass 123456 // 访问的密码
4. maxheap // 记得把这个配置节点打开,否者redis 服务无法启动。例如maxheap 1024000000
5. timeout:// 请求超时时间
6. logfile "/data/redis2/redis.log"  //log文件位置
7. databases 16 // 开启数据库的数量,,设置db库数量,默认16个库,从0号数据库到15号数据库
8. dbfilename dump_6379.rdb // 数据快照文件名(只是文件名,不包括目录)
9.appendonly no  yes // 日志开关,不是包报错的日志,是二进制,记录数据变化
10.save 900 1  // 在900 秒内有一个键内容发生更改触发快照机制
     save 300 10
     save 60 10000
11.slaveof 192.168.0.179 6380  // 主从配置
12.rdbcompression yes // 持久化到 RDB 文件时,是否压缩,"yes" 为压缩,“no” 则反之
13.stop-writes-on-bgsave-error no // 快照出错时,是否禁止redis写入操作
14.always-show-logo yes // 在启动 redis 时是否显示 log
15.dir /apps/redis/data/  // 快照文件保存路径,指定数据目录
16.replica-read-only yes  // 是否设置从库只读
17.repl-diskless-sync no  //是否使用 socket 方式复制数据, 目前 redis 复制提供两种方式, disk 和 socket
18.repl-timeout 60         //复制链接超时时间
19.replica-priority 100    // 当 master 不可用,Sentinel 会根据 slave 的优先级选举一个 master 。最低的优先级的 slave ,当选 master 。而配置成 0,永远不会被选举
20.requirepass foobared    // 设置 redis 连接密码
21.maxclients 10000  最大连接客户端
22.cluster-enabled yes 是否开启集群模式,默认是单机模式
23.cluster-node-timeout 15000 集群中node节点连接 超时时间

=========【Redis 数据类型】=========
Redis支持五种【九种】数据类型
1、string(字符串)
2、hash(哈希)
3、list(列表)
4、set(无序、去重集合)
5、zset(sorted set:有序、去重集合)
6、BitMaps[布隆过滤器]是字符串类型的,是个位符的二进制组成的【2.2 版新增】
7、HyperLogLoss[基准统计]提供一个不太准确的基数统计方法,set的升级版【2.8 版新增】
8、GEO地理坐标【3.2 版新增】
9、Streams流,kafka是借助于流服务开发【5.0 版新增】

=========【Redis 字符串(String)】=========
Redis 字符串(String)  

string 是 redis 最基本的类型,你可以理解成与 Memcached 一模一样的类型,一个 key 对应一个 value
string 类型是二进制安全的。意思是 redis 的 string 可以包含任何数据。比如jpg图片或者序列化的对象
string 类型是 Redis 最基本的数据类型,string 类型的值最大能存储 512MB
常用命令:get、set、incr、decr、mget等。
应用场景:计数器(视频播放次数,点赞次数),常规计数(微博数, 粉丝数),用户token,缓存JSON对象
*
SET key value:设置指定 key 的值
GET key:获取指定 key 的值。
INCR key:将 key 中储存的 数字值增一
INCRBY key increment:将 key 所储存的值加上给定的增量值(increment)
INCRBYFLOAT key increment:将 key 所储存的值加上给定的浮点增量值(increment)
DECR key:将 key 中储存的 数字值减一
DECRBY key decrement:key 所储存的值减去给定的减量值(decrement)
APPEND key value:如果 key 已经存在并且是一个字符串, APPEND 命令将指定的 value 追加到该 key 原来值(value)的末尾
*
*
=========【Redis 哈希(Hash)】=========
Redis 哈希(Hash)  

常用命令:123
应用场景:用户信息,订单信息,购物车
用户信息:用户id,姓名,年龄等
订单信息:订单id,商品名称,价格等
=========【Redis 列表(List)】=========
Redis 列表(List)  
BLPOP key1 [key2 ] timeout:移出并获取列表的“第一个”元素, 如果列表没有元素会“阻塞”列表直到等待超时或发现可弹出元素为止。
BRPOP key1 [key2 ] timeout:移出并获取列表的“最后一个”元素, 如果列表没有元素会“阻塞”列表直到等待超时或发现可弹出元素为止。
LINDEX key index:通过索引获取列表中的元素
LLEN key:获取列表长度
LPOP key:从队列的左边出队一个元素
RPOP key:从队列的右边出队一个元素
LPUSH key:从队列的左边入队一个或多个元素
RPUSH key:从队列的右边入队一个元素
LPUSHX key value:将一个值插入到已存在的列表头部
RPUSHX key value:从队列的右边入队一个元素,仅队列存在时有效

按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)。
常用命令:123
应用场景:twitter的关注列表,粉丝列表,消息队列,电商秒杀,最新消息等
=========【Redis 集合(Set)】=========
Redis 集合(Set)  

Set 是 string 类型的无序集合

常用命令:
应用场景:点赞、踩、关注/被关注、好友关系等
=========【Redis 有序集合zset(sorted set)】=========
Redis 有序集合(sorted set)  

zset 是 string 类型元素的集合,且不允许重复的成员
常用命令:123
应用场景:排行榜,电商排序、热搜
=========【Redis 键(key) 命令】=========
Redis 键(key) 和 Redis keys 命令  

序号    命令及描述
1    DEL key
      该命令用于在 key 存在时删除 key。

2    DUMP key 
      序列化给定 key ,并返回被序列化的值。

3    EXISTS key 
      检查给定 key 是否存在。

4    EXPIRE key seconds
      为给定 key 设置过期时间。

5    EXPIREAT key timestamp 
      EXPIREAT 的作用和 EXPIRE 类似,都用于为 key 设置过期时间。 不同在于 EXPIREAT 命令接受的时间参数是 UNIX 时间戳(unix timestamp)。

6    PEXPIRE key milliseconds 
      设置 key 的过期时间以毫秒计。

7    PEXPIREAT key milliseconds-timestamp 
      设置 key 过期时间的时间戳(unix timestamp) 以毫秒计

8    KEYS pattern 
      查找所有符合给定模式( pattern)的 key 。

9    MOVE key db 
      将当前数据库的 key 移动到给定的数据库 db 当中。

10    PERSIST key 
        移除 key 的过期时间,key 将持久保持。

11    PTTL key 
        以毫秒为单位返回 key 的剩余的过期时间。

12    TTL key 
        以秒为单位,返回给定 key 的剩余生存时间(TTL, time to live)。

13    RANDOMKEY 
        从当前数据库中随机返回一个 key 。

14    RENAME key newkey 
        修改 key 的名称

15    RENAMENX key newkey 
        仅当 newkey 不存在时,将 key 改名为 newkey 。

16    TYPE key 
        返回 key 所储存的值的类型。
=========【Redis 主从复制】=========
1、redis的主从复制是异步进行的,它不会影响master的运行,所以不会降低redis的处理性能。
     主从架构中,可以考虑关闭Master的数据持久化功能,只让Slave进行持久化,这样可以提高主服务器的处理性能。
     同时Slave为只读模式,这样可以避免Slave缓存的数据被误修改。

2、启动多个redis进程
     创建多个 redis 目录,以端口号命名,比如:创建 6379、6380 两个目录,将 redis 的安装文件 bin 和 conf 拷贝至这两个目录。

    设置从数据库【方式一】
    修改 6379 目录下的 redis.conf 设置端口号为 6379。
    修改 6380 目录下的 redis.conf 设置端口号为 6380
    启动 6379 和 6380 目录下的 redis-server 程序:
    cd 6379      ./redis-server . /redis.conf
    cd 6380      ./redis-server . /redis.conf

    设置从数据库【方式二】
    SLAVEOF 192.168.8.51 6380   【临时生效】

    查看状态:info replication
    断开主从复制:在slave节点,执行6380:>slaveof no one
=========【Redis 持久化 RDB、AOF】=========
RDB 持久化机制:快照,将Reids在内存中的数据库记录“定时”dump到磁盘上;
AOF 持久化机制:追加式文件,对每条写入命令作为日志,将Reids的操作日志以“追加”的方式写入文件;

Redis 混合持久化
=========【Redis 哨兵(Sentinel)】=========
1、
=========【数据淘汰策略】=========
*
=========【客户端编程】=========
RedisConfig
*
IRedisClient
*
IRedisClientsManager
*
RedisClientManagerConfig
*
PooledRedisClientManager
*

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值