Redis 哈希(Hash)
Redis hash 是一个 string 类型的K-V映射表,相当于Java中的HashMap,可以用来存储对象。
hset/hget/hmset/hmget/hgetall/hdel
如图一,hset/hget/hmset/hmget/hgetall与List中的操作类似,分别是设置/获取值/批量设置/批量获取值/获得所有kv对。hash中的value是键值对,hdel删除的是key中的一个value。
hlen [key]
与llen类似,有多少个kv对就返回多少
hexists [key] [field]
查询某个key中是否含有某个field
hkeys/hvals [key]
得到所有field或者所有value
hincrby/hincrbyfloat [key] [field] [value]
让key中的某个数字类型的field,增加某个value,当value是小数类型时使用hincrbyfloat。
hsetnx [key] [field] [value]
与setnx类似,如果不存在该field才能操作。
Redis有序集合(Sorted Set)
Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员。不同的是每个元素都会关联一个double类型的分数,Redis通过分数来为集合中的成员进行从小到大的排序。有序集合的成员是唯一的,但分数(score)却可以重复。
zadd/zrange
与set类似,但是在创建sorted set时,需要给每个值带上一个score作为标记,通过这个score排序。在获取值时,可以加上withscores参数来输出每个value对应的score。
zrangebyscore key
如图,可以按照起始score和结束score作为范围获得key中的部分值。同样的,这个命令可以在后面加上withscores参数来输出每个value对应的score。另外,默认输入数字是两边都取值,如果需要取类似【60,80)的范围,可以在数字前面加上左括号【(】,例如:zrangebyscore zset1 60 (80
还有一个可选参数是limit,例如:zrangebyscore zset1 60 80 limit 1 2,意思是从返回列表中,从索引为1的开始截取,截取2个值。
zrem
与其他删除操作类似,删除key中的一个value
**zcard **
zcount
返回key的长度
返回限定范围的key的长度
zrank
返回该value在key中的序号
zrevrank
返回该value在key中的逆向序号
zrevrange
与zrange类似,返回逆向表,其他参数参考zrange。
zrevrangebyscore key
与zrangebyscore类似,从大到小排序。
Redis的配置文件redis.conf
配置访问端口。
配置访问ip。
配置超时中断连接时间,如果是0则永不中断。
配置确认连接存活时间。
配置Redis按作为守护进程启动,当Redis作为守护进程运行的时候,它会写一个 pid 到 /var/run/redis.pid 文件里面(这个文件路径也可以配置)。
配置日志监控级别。可选debug/verbose/notice/warning,默认使用notice。
默认输出日志到控制台,也可以给定一个地址字符串以创建一个日志文件到磁盘。
默认数据库的数量为16,可以按照实际情况配置。
配置是否把Redis日志写入系统日志中,配置对应标识和指定syslog设备。
配置RDB的存储策略,如第一行,每900秒检测到一次修改操作则保存至RDB文件中。
配置RDB的文件名。
可以直接在配置文件中指定master机。
配置最大内存。
配置AOF是否开启与AOF文件名。
配置AOF的重写的条件。
配置最大连接数。
配置默认过期策略,默认为永不过期(实际使用时必须要按需求移除key,否则内存不足)。
配置样本数量,默认为5。