月度归档:2016年10月

window redis 文件夹文件说明 (一 )


一、window redis文件夹列表

redis-window-filelist
各文件功能说明
redis-benchmark.exe 测试redis性能的程序,可以同时模拟N多客户端查询和赋值
redis-check-aof.exe 更新日志检查–修复日志
redis-check-dump.exe 本地数据库检查
redis.conf redis配置文件
redis-cli.exe 客户端连接 redis服务器工具
redis-server.exe redis服务器启动程序


二、window redis-benchmark.exe 使用说明

语法简介:
在CMD中输入
redis-benchmark [-h 地址 ] [-p 端口 ] [-c 多个个客户端链接] [-n 请求数] 中括号 表示参数可选

参数说明:
-h 服务器 主机地址 (默认/缺省值 127.0.0.1)
-p 服务端口 (默认/缺省值 6379)
-s 服务器对外开放的socket端口
-c 客户端并发数 (默认/缺省值 50)
-n 总共请求数 (默认/缺省值 10000)
-d set或get每次data尺寸(字节) (默认/缺省值 2)
-k 1=keep alive 0=reconnect (默认/缺省值 1)
-r 使用随机键设置/获取/增加,随机值
-P 管道请求数。 默认值 1 (不使用管道).
-q 只显示查询和秒值。
–csv 输出CSV格式
-l 循环 运行测试
-t 指定测试列表
-I 空闲模式,打开空闲连接并等待

举例说明:

 //向redis发送 5个客户端  100请求 并且每次请求大小为10字节
D:\redis\Redis-3.2.100-Windows-32\Redis>redis-benchmark -h 127.0.0.1 -c 5 -n 100
 -d 10
 
运行结果: ====== PING_INLINE ====== 100 requests completed in 0.01 seconds 5 parallel clients 10 bytes payload keep alive: 1 100.00% <= 0 milliseconds 9090.91 requests per second ====== PING_BULK ====== 100 requests completed in 0.01 seconds 5 parallel clients 10 bytes payload keep alive: 1 100.00% <= 0 milliseconds 10000.00 requests per second ====== SET ====== 100 requests completed in 0.01 seconds 5 parallel clients 10 bytes payload keep alive: 1 100.00% <= 0 milliseconds 10000.00 requests per second ====== GET ====== 100 requests completed in 0.01 seconds 5 parallel clients 10 bytes payload keep alive: 1 100.00% <= 0 milliseconds 10000.00 requests per second ====== INCR ====== 100 requests completed in 0.01 seconds 5 parallel clients 10 bytes payload keep alive: 1 100.00% <= 1 milliseconds 8333.33 requests per second ====== LPUSH ====== 100 requests completed in 0.01 seconds 5 parallel clients 10 bytes payload keep alive: 1 96.00% <= 1 milliseconds 100.00% <= 1 milliseconds 10000.00 requests per second ====== LPOP ====== 100 requests completed in 0.00 seconds 5 parallel clients 10 bytes payload keep alive: 1 100.00% <= 0 milliseconds 20000.00 requests per second ====== SADD ====== 100 requests completed in 0.01 seconds 5 parallel clients 10 bytes payload keep alive: 1 100.00% <= 0 milliseconds 11111.11 requests per second ====== SPOP ====== 100 requests completed in 0.00 seconds 5 parallel clients 10 bytes payload keep alive: 1 100.00% <= 0 milliseconds 25000.00 requests per second ====== LPUSH (needed to benchmark LRANGE) ====== 100 requests completed in 0.01 seconds 5 parallel clients 10 bytes payload keep alive: 1 91.00% <= 1 milliseconds 100.00% <= 1 milliseconds 10000.00 requests per second ====== LRANGE_100 (first 100 elements) ====== 100 requests completed in 0.01 seconds 5 parallel clients 10 bytes payload keep alive: 1 96.00% <= 1 milliseconds 100.00% <= 1 milliseconds 11111.11 requests per second ====== LRANGE_300 (first 300 elements) ====== 100 requests completed in 0.03 seconds 5 parallel clients 10 bytes payload keep alive: 1 65.00% <= 1 milliseconds 91.00% <= 2 milliseconds 100.00% <= 2 milliseconds 3448.28 requests per second ====== LRANGE_500 (first 450 elements) ====== 100 requests completed in 0.03 seconds 5 parallel clients 10 bytes payload keep alive: 1 50.00% <= 1 milliseconds 99.00% <= 2 milliseconds 100.00% <= 2 milliseconds 3125.00 requests per second ====== LRANGE_600 (first 600 elements) ====== 100 requests completed in 0.04 seconds 5 parallel clients 10 bytes payload keep alive: 1 9.00% <= 1 milliseconds 90.00% <= 2 milliseconds 100.00% <= 2 milliseconds 2380.95 requests per second ====== MSET (10 keys) ====== 100 requests completed in 0.01 seconds 5 parallel clients 10 bytes payload keep alive: 1 95.00% <= 1 milliseconds 100.00% <= 1 milliseconds 7692.31 requests per second

Redis 数据类型简介


一、数据类型string简介

string 类型是redis类型,是 一个 key对应一个value的类型,
string类型 可以包含任意被编码后的字符数据,也可以包含系列化的对象。

string类型最大value值为512MB。

常用操作string类型的命令有:
1.1 get 获取键值
1.2 set 设置相关键值
1.3 incr 设置当前键值自动加1 //常用于计数器
1.4 decr 当前键值自动减1 //当减到0 后 再 继续减,则会报错

string 类型常用于简单的key-Value关系存储 ,
比如一个用户,累计登录用户多少次
redis string get set incr decr命令

redis string get set incr decr命令


二、数据类型List简介

list通常指一个数据列表,

列表的最大长度2的32次方-1(4294967295个元素)

常用命令:
2.1 lpush 将一个值插入到列表头部,key不存在创建一个列表,key不是list类型,则报错,key存在,则直接在list前面插入数据
2.2 rpush 将一个值插入到列表底部,key不存在创建一个列表,key不是list类型,则报错,key存在,则直接在list前面插入数据
2.3 lpop 返回列表的第一个值,并移出此值
2.4 rpop 返回列表中最后一个值,并移出此值
2.5 lrange 返回列表 某一段位置的内容

redis lpush rpop lpop lrange 命令

redis lpush rpop lpop lrange 命令


三、数据类型hash简介

hash 数据类型是哈希键值对的集合,常用于对象的存储
常用命令:
3.1 hget 获取hash值
3.2 hset 设置hash值
3.3 hgetall 获取key所对应的所有字段和值
3.4 hmset 给相应的key设置hash值,此命令会重写hash集中的存在的字段,如果不存在key,会新建hash集与key对应,如果key类型不是hash集,则会报错  

应用场景:

命令运行如下图所示:

redis hash hset hget hgetall hmset命令使用方法

redis hash hset hget hgetall hmset命令使用方法


四、数据类型set简介

set类型 类似于 list类型
set类型 想用的命令有
4.1 sadd 在当前set下添加值 ,如果有此 key ,则在原有的key下添加值,否则创建key并添加值
4.2 srem 在当前set下移除集合中的一个或多个成员值,如果被移除的成员值,不存在此集合中,则忽略此操作
4.3 spop 随机移除一个成员值,并返回此成员值
4.4 sdiff 返回两个集合之间的差,如果集合不存在,则视为空集合。

4.5 smembers 返回当前集合中的所有元素,返回sets中的所有元素
4.6 sunion 可以同时返回多个集合中的元素

命令运行如下图所示:

redis  sadd srem smemebers sdiff命令使用说明

redis sadd srem smemebers sdiff命令使用说明


五、数据类型Sort Set简介

数据类型简介:
拥有顺序的集合类型,集合的元素有string类型组成,不允许存在重复的元素 ,
同set类型的最大区别是,每个元素都对应一个排序字段(此排序字段元素之间可以相同)
sort set是通过hash表的模式实现,集合 可以存储的最大元素为2的32次方-1

常见命令:
5.1 zadd 添加集合元素 [localhost~]zadd keyname 排序值 元素值
5.2 zrange 显示有序集合中的元素
5.3 zrem 删除指定value的元素,并返回集合中 元素的被删除的数量
5.4 zcard 返回当前key下有多少个元素
命令运行如下图所示:

redis sortset zadd zrem zrange zcard命令使用方法

redis sortset zadd zrem zrange zcard命令使用方法

相关阅读:
windows下 Redis配置
c# redis应用实例
redis相关简介
KV数据库简介

windows下 Redis配置


一、redis获取 配置的相关命令简介

在redis中,如果 我们需要 修改redis相关配置 ,我们可以通过修改 redis安装目录下的 配置文件
或通过config命令去修改相关配置,

但最终的配置信息都会写入配置文件进行存储。


二、相关配置 信息说明

2.1 打开cmd 进入到redis安装目录
输入命令 : redis-cli -h 192.168.8.123 -p 6379
输入命令:config get * //获取全部配置信息 此命令输入不区分大小写
//系统将展示当前redis服务允许修改的配置信息列表 ,如下图所示:
redis-config-get

获取指定的配置信息
输入命令:config get slaveof,如下图所示:
redis-config-get-slaveof

三、修改配置的方法

例:调整参数timeout

输入命令 config set timeout 500
输入命令 config get timeout //查看刚刚设置的timeout
或查看配置文件
redis-config-set-timeout


四、 配置文件详解


1) “dbfilename” //本地数据库文件存储名
2) “dump.rdb” //参数默认值
3) “requirepass” //设置redis密码 ,如果设置客户端连接 需要输入密码
4) “” //密码值
5) “masterauth” //master是否设置密码,主要针对slave
6) “”
7) “unixsocket” //unixsocket存放路径,主要针对unix系统
8) “”
9) “logfile” //指定日志文件位置
10) “”
11) “pidfile” //指定进程文件存放位置
12) “/var/run/redis.pid”
13) “maxmemory” //最大可使用内存
14) “3221225472”
15) “maxmemory-samples” //最大内存使用策略
16) “5”
17) “timeout” //指定一个client空闲时长达到多少毫秒后自动关闭 (0就是无限大)
18) “0”
19) “tcp-keepalive” //tcp 握手检测,避免端口被占用
20) “0”
21) “auto-aof-rewrite-percentage” //自动重写日志文件 当日志文件增大至100%
22) “100”
23) “auto-aof-rewrite-min-size” //日志重写前 的最小尺寸
24) “67108864”
25) “hash-max-ziplist-entries” //hash字段数量小于 这个值,系统将会采用特殊编码
26) “512”
27) “hash-max-ziplist-value” //hash字段值小于64字节,系统将会对这个值采取 特殊编码
28) “64”
29) “list-max-ziplist-entries” //同上
30) “512”
31) “list-max-ziplist-value”
32) “64”
33) “set-max-intset-entries”
34) “512”
35) “zset-max-ziplist-entries”
36) “128”
37) “zset-max-ziplist-value”
38) “64”
39) “hll-sparse-max-bytes” //hash刷新
40) “3000”
41) “lua-time-limit”//lua脚本的最大执行时间 毫秒
42) “5000”
43) “slowlog-log-slower-than” //慢查询日志 时间单位 微秒
44) “10000”
45) “latency-monitor-threshold”
46) “0”
47) “slowlog-max-len”
48) “128”
49) “port” //端口
50) “6379”
51) “tcp-backlog”
52) “511”
53) “databases” //设置数据库个数
54) “16”
55) “repl-ping-slave-period” //slave根据设置的时间 像master发送ping命令 默认10秒
56) “10”
57) “repl-timeout” //ping超时时间设置
58) “60”
59) “repl-backlog-size” //当slave断开后,master的变化记录在此日志中
60) “1048576”
61) “repl-backlog-ttl” //当master和slave之间连接断开 下面设置的时间值后,自动释放日志
62) “3600”
63) “maxclients” //最大客户端数量
64) “10000”
65) “watchdog-period” //运行时间超过一下 毫秒的 操作将会被记载
66) “0”
67) “slave-priority” //当master不能工作时,此时系统会从 当前值最小的一个slave作为新的master
68) “100”
69) “min-slaves-to-write” //设置为0关闭这个选项
70) “0”
71) “min-slaves-max-lag”
72) “10”
73) “hz”
74) “10”
75) “cluster-node-timeout” //集群超时时间
76) “15000”
77) “cluster-migration-barrier” //一个master拥有的最少slave节点数
78) “1”
79) “cluster-slave-validity-factor” //故障转移
80) “10”
81) “repl-diskless-sync-delay” // 当收到第一个请求时,等待多个slave一起来请求之间的间隔时间
82) “5”
83) “cluster-require-full-coverage” //只要有节点故障,则整个集群停止对外服务
84) “yes”
85) “no-appendfsync-on-rewrite”
86) “no”
87) “slave-serve-stale-data”
// 当slave和master之间的通讯异常或slave正在同步数据时,此时 如果slave接收到请求
当配置为yes时,slave可以处理 客户端请求;
当配置为no时,slave将返回错误,默认是yes
88) “yes”
89) “slave-read-only” //slave只作为读取服务器
90) “yes”
91) “stop-writes-on-bgsave-error” //如果redis保存错误,是否停止写入服务
92) “yes”
93) “daemonize” //redis是否作为守护进程运行
94) “no”
95) “rdbcompression” //保存至 rdb文件是否需要进行压缩
96) “yes”
97) “rdbchecksum” //是否检测系列化数据的完整性
98) “yes”
99) “activerehashing” //客户端输出缓冲限制
100) “yes”
101) “repl-disable-tcp-nodelay” //复制数据是否延迟
102) “no”
103) “repl-diskless-sync” //无硬盘复制功能
104) “no”
105) “aof-rewrite-incremental-fsync” //是否采用增量同步策略
106) “yes”
107) “aof-load-truncated”
108) “yes”
109) “appendonly” //更新操作后,是否进行日志记载
110) “no”
111) “dir” //redis安装目录
112) “D:\\redis\\Redis-3.2.100-Windows-32\\Redis”
113) “maxmemory-policy” //达到最大内存时,使用的策略
114) “noeviction”
115) “appendfsync” //刷新磁盘方式
116) “everysec”
117) “save” //创建当前数据库备份
118) “jd 900 jd 300 jd 60”
119) “loglevel” //日志级别
120) “verbose”
121) “client-output-buffer-limit” //客户端输出限制
122) “normal 0 0 0 slave 268435456 67108864 60 pubsub 33554432 8388608 60”
123) “unixsocketperm” //unix socket空闲多少秒 需要关闭当前连接
124) “0”
125) “slaveof” //集群部署
126) “”
127) “notify-keyspace-events”
128) “”
129) “bind” //绑定ip 类似于 iis绑定ip
130) “”

相关阅读:
c# redis应用实例
redis相关简介
KV数据库简介