spring redis学习笔记
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 |
|
2 |
DUMP key |
|
3 |
EXISTS key |
|
4 |
EXPIRE key seconds |
|
5 |
EXPIREAT key timestamp |
|
6 |
PEXPIRE key milliseconds |
|
7 |
PEXPIREAT key |
|
8 |
KEYS pattern |
|
9 |
MOVE key db |
|
10 |
PERSIST key |
|
11 |
PTTL key |
|
12 |
TTL key |
|
13 |
RANDOMKEY |
|
14 |
RENAME key newkey |
|
15 |
RENAMENX key newkey |
|
16 |
TYPE 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 |
1 |
|
8 |
-r |
SET/GET/INCR |
|
|
9 |
-P |
通过管道传输 <numreq> 请求 |
1 |
|
10 |
-q |
强制退出 redis。仅显示 query/sec 值 |
|
|
11 |
--csv |
以 CSV 格式输出 |
|
|
12 |
-l |
生成循环,永久执行测试 |
|
|
13 |
-t |
仅运行以逗号分隔的测试命令列表。 |
|
|
14 |
-I |
Idle |
10.客服端连接
Redis 通过监听一个 TCP 端口或者 Unix socket 的方式来接收来自客户端的连接,当一个连接建立后,Redis 内部会进行以下一些操作:
1.首先,客户端 socket 会被设置为非阻塞模式,因为 Redis 在网络事件处理上采用的是非阻塞多路复用模型。
2.然后为这个 socket 设置 TCP_NODELAY 属性,禁用 Nagle 算法
3.然后创建一个可读的文件事件用于监听这个客户端
socket 的数据发送
|
S.N. |
命令 |
描述 |
|
1 |
CLIENT |
返回连接到 redis 服务的客户端列表 |
|
2 |
CLIENT |
设置当前连接的名称 |
|
3 |
CLIENT |
获取通过 CLIENT SETNAME 命令设置的服务名称 |
|
4 |
CLIENT |
挂起客户端连接,指定挂起的时间以毫秒计 |
|
5 |
CLIENT |
关闭客户端连接 |
11. Redis 管道技术
Redis 管道技术可以在服务端未响应时,客户端可以继续向服务端发送请求,并最终一次性读取所有服务端的响应。
spring redis学习笔记的更多相关文章
- Spring Boot 学习笔记(六) 整合 RESTful 参数传递
Spring Boot 学习笔记 源码地址 Spring Boot 学习笔记(一) hello world Spring Boot 学习笔记(二) 整合 log4j2 Spring Boot 学习笔记 ...
- redis学习笔记(详细)——高级篇
redis学习笔记(详细)--初级篇 redis学习笔记(详细)--高级篇 redis配置文件介绍 linux环境下配置大于编程 redis 的配置文件位于 Redis 安装目录下,文件名为 redi ...
- redis 学习笔记(6)-cluster集群搭建
上次写redis的学习笔记还是2014年,一转眼已经快2年过去了,在段时间里,redis最大的变化之一就是cluster功能的正式发布,以前要搞redis集群,得借助一致性hash来自己搞shardi ...
- Redis学习笔记~目录
回到占占推荐博客索引 百度百科 redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合). ...
- Redis学习笔记4-Redis配置详解
在Redis中直接启动redis-server服务时, 采用的是默认的配置文件.采用redis-server xxx.conf 这样的方式可以按照指定的配置文件来运行Redis服务.按照本Redi ...
- Redis学习笔记7--Redis管道(pipeline)
redis是一个cs模式的tcp server,使用和http类似的请求响应协议.一个client可以通过一个socket连接发起多个请求命令.每个请求命令发出后client通常会阻塞并等待redis ...
- Redis学习笔记一:数据结构与对象
1. String(SDS) Redis使用自定义的一种字符串结构SDS来作为字符串的表示. 127.0.0.1:6379> set name liushijie OK 在如上操作中,name( ...
- Redis学习笔记之ABC
Redis学习笔记之ABC Redis命令速查 官方帮助文档 中文版本1 中文版本2(反应速度比较慢) 基本操作 字符串操作 set key value get key 哈希 HMSET user:1 ...
- (转)redis 学习笔记(1)-编译、启动、停止
redis 学习笔记(1)-编译.启动.停止 一.下载.编译 redis是以源码方式发行的,先下载源码,然后在linux下编译 1.1 http://www.redis.io/download 先 ...
随机推荐
- 【并发编程】ThreadLocal其实很简单
什么是ThreadLocal ThreadLocal有点类似于Map类型的数据变量.ThreadLocal类型的变量每个线程都有自己的一个副本,某个线程对这个变量的修改不会影响其他线程副本的值.需要注 ...
- 利用Nginx中的Upstream模块配置服务器负载均衡
1. 前言 nginx有一个最大的功能就是可以实现服务器的负载均衡,本篇博文就利用nginx中的upstream模块来配置一个简单的负载均衡.关于nginx的安装和配置文件可以查阅博文:windows ...
- P3105 [USACO14OPEN]公平的摄影(正解是乱搞,我却二分了)(+二分答案总结)
照例化简题意: 给定一个01区间,可以把0改成1,问其中最长的01数量相等的区间长度. 额很容易想到前缀和,把w弄成1,h弄成-1,然后求前缀和,然后乱搞就行了. 但是一直不太会乱搞的我却直接想到了二 ...
- MapReduce 人个理解
1.MapReduce 理解 拆分成 map 过程与 reduce 过程: map 可以理解为sql 中的 group by 操作, reduce相当于group by 后的聚合计算 : 一个map ...
- Xshell和Xftp 安装及使用
Xshell Xshell 是一个强大的安全终端模拟软件,它支持SSH1, SSH2, 以及Microsoft Windows 平台的TELNET 协议.Xshell 通过互联网到远程主机的安全连接以 ...
- 大数据之路week01--day02我实在时被继承super这些东西搞的头疼,今天来好好整理以下。
这一周的第一天的内容是面向对象的封装,以及对方法的调用.实在时没法单独拿出来单说,就结合这一节一起说了. 我实在是被继承中的super用法给弄的有点晕,程序总是不能按照我想的那样,不是说结果,而是实现 ...
- 8.3 NOIP 模拟12题解
话说这次考试T1和T2是真的水,然而T1CE,T2TLE,T3CE 这不就是在侮辱我的智商啊!之前本机编译都是c++,以后要用c++11. 这次的T1就是一个大型找规律,我的规律都找出来了,但是竟然用 ...
- OneNet平台实践
原文链接:https://blog.csdn.net/w_xiaote/article/details/80109634#comments W5500通过DHT11采集环境温湿度并上传到onNET ...
- unittest使用总结
unittest简介 Unittest是python内置的一个单元测试框架,主要用于自动化测试用例的开发与执行 简单的使用如下 import unittest class TestStringMeth ...
- JavaScript-原型对象与原型链
原型对象 1.每个对象一定会有一个原型对象 2.原型对象实际是构造实例对象的构造器中的一个属性,只不过这个属性是个对象 3.这个原型对象中的属性与方法,都会被对象实例所共享(类似python中的类方法 ...