1.下载: https://github.com/MicrosoftArchive/redis/releases,并解压文件;

2.双击redis-server.exe,运行redis服务器;

3.双击redis-cli.exe,运行redis客服端;

远程连接redis服务器:./redis-cli -h 127.0.0.1 -p 6379 -a password

4.参数说明:config get *

daemonize no(默认)/yes

是否启用守护线程

port 6379(默认)

设置端口

bind 127.0.0.1

绑定主机IP

timeout 300

客服端闲置超时

loglevel verbose(默认)

debug、verbose、notice、warning

设置日志级别

logfile stdout

设置日志记录方式

databases 0(默认)

设置数据库的数量

save <seconds> <changes>

设置数据同步到文件策略

rdbcompression yes(默认)/no

设置存入本地数据库时是否压缩数据(LZF)

dbfilename dump.rdb

设置本地数据库名称

dir ./

设置本地数据库目录

slaveof <masterip> <masterport>

设置从机连接主机的IP和PORT

masterauth <master-password>

设置从机连接主机的密码

requirepass foobared

设置客服端连接服务器密码

maxclients 128

设置客服端最大连接数,0不设置

maxmemory <bytes>

设置redis最大内存限制

appendonly no(默认)/yes

设置是否在每次更新操作后进行日志记录

appendfilename appendonly.aof

设置更新日志文件名

appendfsync everysec(默认)/no/always

设置更新文件策略

vm-enabled no(默认)/yes

设置是否启用虚拟内存机制

vm-swap-file /tmp/redis.swap(默认值)

设置虚拟内存文件路径

vm-max-memory 0

设置所有大于vm-max-memory的数据存入虚拟内存文件,其中索引一直储存在内存在

vm-page-size 32

设置每个虚拟内存分页大小

vm-pages 134217728

设置swap文件中的page数量

vm-max-threads 4

设置访问swap文件的线程数,0为串行

glueoutputbuf yes(默认)/no

设置在向客户端应答时,是否把较小的包合并为一个包发送

hash-max-zipmap-entries 64

hash-max-zipmap-value 512

设置在超过一定的数量或者最大的元素超过某一临界值时,采用一种特殊的哈希算法

activerehashing yes(默认)/no

设置是否激活重置哈希

include /path/to/local.conf

设置包含其它的配置文件,可以在同一主机上多个Redis实例之间使用同一份配置文件,而同时各个实例又拥有自己的特定配置文件

5.数据类型

类型

简介

特性

场景

String(字符串)

二进制安全

可以包含任何数据,比如jpg图片或者序列化的对象,一个键最大能存储512M

---

Hash(字典)

键值对集合,即编程语言中的Map类型

适合存储对象,并且可以像数据库中update一个属性一样只修改某一项属性值(Memcached中需要取出整个字符串反序列化成对象修改完再序列化存回去)

存储、读取、修改用户属性

List(列表)

链表(双向链表)

增删快,提供了操作某一段元素的API

1,最新消息排行等功能(比如朋友圈的时间线)

2,消息队列

Set(集合)

哈希表实现,元素不重复

1,添加、删除,查找的复杂度都是O(1)

2,为集合提供了求交集、并集、差集等操作

1,共同好友

2,利用唯一性,统计访问网站的所有独立ip 3,好用推荐时,根据tag求交集,大于某个阈值就可以推荐

Sorted Set(有序集合)

将Set中的元素增加一个权重参数score,元素按score有序排列

数据插入集合时,已经进行天然排序

1,排行榜

2,带权重的消息队列

6.对key的操作:

序号

命令及描述

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 所储存的值的类型。

7.数据备份与恢复

save: 该命令将在 redis 安装目录中创建dump.rdb文件。如果需要恢复数据,只需将备份文件 (dump.rdb) 移动到 redis 安装目录并启动服务即可.

config get dir:获取dump.rdb文件路径.

8.redis安全

AUTH password: 我们可以通过 redis 的配置文件设置密码参数,这样客户端连接到 redis 服务就需要密码验证,这样可以让你的 redis 服务更安全。

9.性能测试

redis-benchmark [option] [option value]

序号

选项

描述

默认值

1

-h

指定服务器主机名

127.0.0.1

2

-p

指定服务器端口

6379

3

-s

指定服务器 socket

4

-c

指定并发连接数

50

5

-n

指定请求数

10000

6

-d

以字节的形式指定 SET/GET 值的数据大小

2

7

-k

1=keep
alive 0=reconnect

1

8

-r

SET/GET/INCR
使用随机 key, SADD 使用随机值

9

-P

通过管道传输 <numreq> 请求

1

10

-q

强制退出 redis。仅显示 query/sec 值

11

--csv

以 CSV 格式输出

12

-l

生成循环,永久执行测试

13

-t

仅运行以逗号分隔的测试命令列表。

14

-I

Idle
模式。仅打开 N 个 idle 连接并等待。

10.客服端连接

Redis 通过监听一个 TCP 端口或者 Unix socket 的方式来接收来自客户端的连接,当一个连接建立后,Redis 内部会进行以下一些操作:

1.首先,客户端 socket 会被设置为非阻塞模式,因为 Redis 在网络事件处理上采用的是非阻塞多路复用模型。

2.然后为这个 socket 设置 TCP_NODELAY 属性,禁用 Nagle 算法

3.然后创建一个可读的文件事件用于监听这个客户端
socket 的数据发送

S.N.

命令

描述

1

CLIENT
LIST

返回连接到 redis 服务的客户端列表

2

CLIENT
SETNAME

设置当前连接的名称

3

CLIENT
GETNAME

获取通过 CLIENT SETNAME 命令设置的服务名称

4

CLIENT
PAUSE

挂起客户端连接,指定挂起的时间以毫秒计

5

CLIENT
KILL

关闭客户端连接

11. Redis 管道技术

Redis 管道技术可以在服务端未响应时,客户端可以继续向服务端发送请求,并最终一次性读取所有服务端的响应。

spring redis学习笔记的更多相关文章

  1. Spring Boot 学习笔记(六) 整合 RESTful 参数传递

    Spring Boot 学习笔记 源码地址 Spring Boot 学习笔记(一) hello world Spring Boot 学习笔记(二) 整合 log4j2 Spring Boot 学习笔记 ...

  2. redis学习笔记(详细)——高级篇

    redis学习笔记(详细)--初级篇 redis学习笔记(详细)--高级篇 redis配置文件介绍 linux环境下配置大于编程 redis 的配置文件位于 Redis 安装目录下,文件名为 redi ...

  3. redis 学习笔记(6)-cluster集群搭建

    上次写redis的学习笔记还是2014年,一转眼已经快2年过去了,在段时间里,redis最大的变化之一就是cluster功能的正式发布,以前要搞redis集群,得借助一致性hash来自己搞shardi ...

  4. Redis学习笔记~目录

    回到占占推荐博客索引 百度百科 redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合). ...

  5. Redis学习笔记4-Redis配置详解

    在Redis中直接启动redis-server服务时, 采用的是默认的配置文件.采用redis-server   xxx.conf 这样的方式可以按照指定的配置文件来运行Redis服务.按照本Redi ...

  6. Redis学习笔记7--Redis管道(pipeline)

    redis是一个cs模式的tcp server,使用和http类似的请求响应协议.一个client可以通过一个socket连接发起多个请求命令.每个请求命令发出后client通常会阻塞并等待redis ...

  7. Redis学习笔记一:数据结构与对象

    1. String(SDS) Redis使用自定义的一种字符串结构SDS来作为字符串的表示. 127.0.0.1:6379> set name liushijie OK 在如上操作中,name( ...

  8. Redis学习笔记之ABC

    Redis学习笔记之ABC Redis命令速查 官方帮助文档 中文版本1 中文版本2(反应速度比较慢) 基本操作 字符串操作 set key value get key 哈希 HMSET user:1 ...

  9. (转)redis 学习笔记(1)-编译、启动、停止

    redis 学习笔记(1)-编译.启动.停止   一.下载.编译 redis是以源码方式发行的,先下载源码,然后在linux下编译 1.1 http://www.redis.io/download 先 ...

随机推荐

  1. P2893 [USACO08FEB]修路

    直入主题. 农夫约翰想改造一条路,原来的路的每一段海拔是Ai,修理后是Bi花费|A_i–B_i|.我们要求修好的路是单调不升或者单调不降的.求最小花费. 数据范围:n<=2000,0≤ Ai ≤ ...

  2. 大数据之路day04_1--数组 and for循环进阶

    Java数组 在开始之前,提一个十分重要的一点:注意:在给数组分配内存空间时,必须指定数组能够存储的元素来确定数组大小.创建数组之后不能修改数组的大小,可以使用length属性获取数组的大小.在jav ...

  3. python_day3(文件处理)

    1.文件处理 #Author:Elson Zeng #data = open("test").read() # f = open("test",'a',enco ...

  4. pandas处理excel的常用方法技巧(上)

    1. 导库 import pandas as pd 2. 读取excel文件 这里要注意的就是第二个参数header如果不设置,pandas会默认把excel的第一行当作columns,header= ...

  5. jquery.eraser制作擦涂效果

    jquery.eraser制作擦涂效果 <pre><!DOCTYPE html><html> <head> <meta http-equiv=&q ...

  6. MySQL系列:MySQL的基本使用

    数据库的基本操作 在MySQL数据库中,对于一个MySQL示例,是可以包含多个数据库的. 在连接MySQL后,我们可以通过 show databases; 来进行查看有那么数据库.这里已经存在一些库了 ...

  7. 使用VSCode调试Egret项目中的ts代码

    发布一次Android项目后,会在代码里,生成对应的.map文件.这样就可以在编辑器里或是Chrome里面对相应的TS文件进行断点调试了. 实际只要在tsconfig.json里面配置一下," ...

  8. [LC]876题 Middle of the Linked List (链表的中间结点)(链表)

    ①中文题目 给定一个带有头结点 head 的非空单链表,返回链表的中间结点. 如果有两个中间结点,则返回第二个中间结点. 示例 1: 输入:[1,2,3,4,5]输出:此列表中的结点 3 (序列化形式 ...

  9. 微信web协议,群成员唯一uin,获取群成员唯一标识

    群成员唯一标识获取接口 全网最新,支持调试测试.觉得OK再付款! 800元出售源码 不讲价 联系QQ:2052404477

  10. 使用 MUI 自制 弹出层

    使用 MUI 自制 弹出层 <div class="zp-mask" style="display: none; width: 100%;height: 100%; ...