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. L0、L1、L2范数正则化

    一.范数的概念 向量范数是定义了向量的类似于长度的性质,满足正定,齐次,三角不等式的关系就称作范数. 一般分为L0.L1.L2与L_infinity范数. 二.范数正则化背景 1. 监督机器学习问题无 ...

  2. 1114作业 html

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  3. python经典面试算法题1.2:如何从无序链表中移除重复项

    本题目摘自<Python程序员面试算法宝典>,我会每天做一道这本书上的题目,并分享出来,统一放在我博客内,收集在一个分类中. 1.2 如何实现链表的逆序 [蚂蚁金服面试题] 难度系数:⭐⭐ ...

  4. 学Linux到底学什么?

    前言 我们常常听到很多人说要学学Linux或者被人告知说应该学学Linux,那么学Linux到底要学什么? 为什么要学Linux 在回答学什么之前,我们先看看为什么要学.首先我们需要认识到的是,很多服 ...

  5. vue2获取dom节点

    vue2.*版本中 在标签中加上ref='dom',然后在代码中this.$refs.dom这样就拿到了页面元素 例如:<div class='box' ref='myBox'>你好< ...

  6. 别翻了,这篇文章绝对让你深刻理解java类的加载以及ClassLoader源码分析【JVM篇二】

    目录 1.什么是类的加载(类初始化) 2.类的生命周期 3.接口的加载过程 4.解开开篇的面试题 5.理解首次主动使用 6.类加载器 7.关于命名空间 8.JVM类加载机制 9.双亲委派模型 10.C ...

  7. 【SQL】安装后设置 sa账号登录

    1.windows身份验证登录管理员账户   2.找到sa账号双击  3.设置密码,启用 4.右键 属性 安全性   5.重启服务,sa账号登录   本地服务用  .     6.登录成功:

  8. 调用RESTful GET方法

    package restclient; import java.io.BufferedReader; import java.io.IOException; import java.io.InputS ...

  9. 阿里云ECS服务器部署HADOOP集群(一):Hadoop完全分布式集群环境搭建

    准备: 两台配置CentOS 7.3的阿里云ECS服务器: hadoop-2.7.3.tar.gz安装包: jdk-8u77-linux-x64.tar.gz安装包: hostname及IP的配置: ...

  10. 神奇的 SQL 之 MySQL 性能分析神器 → EXPLAIN,SQL 起飞的基石!

    前言 开心一刻 某人养了一头猪,烦了想放生,可是猪认识回家的路,放生几次它都自己回来了.一日,这个人想了个狠办法,开车带着猪转了好多路进山区放生,放生后又各种打转,然后掏出电话给家里人打了个电话,问道 ...