美文网首页
Redis第一天

Redis第一天

作者: 与我常在1053 | 来源:发表于2017-12-20 19:49 被阅读0次

    Redis简介

    Redis是一个高可用的,开源的,高性能的非关系型数据库

    Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。

    Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。

    Redis支持数据的备份,即master-slave模式的数据备份。

    配置说明

    查看设置信息:CONFIG GET CONFIG_SETTING_NAME

    CONFIG GET loglevel

    CONFIG GET *

    获取设置信息:CONFIG SET CONFIG_SETTING_NAME NEW_CONFIG_VALUE

    CONFIG SET loglevel"notice"

    CONFIG GET loglevel

    配置参数说明:

    启用守护进程:daemonize no

    指定Redis的守护进程PID pidfile /var/run/redis.pid

    指定端口port 6379

    绑定的主机地址bind 127.0.0.1

    客户端闲置多长时间关闭timeout 300(若设置为0,则会关闭此功能)

    指定日志级别loglevel verbose(debug、verbose、notice、warning,默认为verbose)

    日志记录方式logfile stdout

    设置数据库的数量databases 16

    指定多长时间,多少次更新操作save

    存储到本地数据库时是否压缩rdbcompression yes

    (Redis采用LZF压缩,如果为了节省CPU时间,可以关闭该选项,但会导致数据库文件变的巨大)

    指定本地数据库文件名dbfilename dump.rdb

    指定本地数据库存放目录dir ./

    当本机为slav服务时,设置master服务的IP地址及端口

    slaveof

    设置同一时间最大客户端连接数,默认无限制maxclients 128

    指定Redis最大内存限制maxmemory

    指定是否在每次更新操作后进行日志记录appendonly no

    指定更新日志文件名appendfilenameappendonly.aof

    指定更新日至条件

    no等待操作系统进行数据缓存时更新到磁盘(快)

    always每次更新后,自己手动调用fsync()将数据更新到磁盘。(慢,安全)

    everysec每秒执行一次(折衷,默认值)

    appendfsync everysec

    指定是否启用虚拟内存机制,默认novm-enabled no

    虚拟内存文件路径vm-swap-file/tmp/redis.swap

    将所有大于vm-max-memory的数据存入虚拟内存vm-max-memory 0

    Redisswap文件分成了很多的page,一个page不能被多个对象共享

    vm-page-size 32

    设置swap文件中的page数量 在磁盘上每8个pages将消耗1byte的内存。

    vm-pages 134217728

    设置访问swap文件的线程数(不要超过机器核数)默认4

    vm-max-threads4

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

    glueoutputbufyes

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

    hash-max-zipmap-entries64

    hash-max-zipmap-value 512

    指定是否激活重置哈希,默认为开启

    activerehashingyes

    指定包含其它的配置文件,可以在同一主机上多个Redis实例之间使用同一份配置文件

    include/path/to/local.conf

    Redis数据类型

    Redis包含五种数据类型:String,hash,list,set以及zset

    String

    是Redis最基本的数据类型,一个key对应一个value,是二进制安全的,所以可以包含任何数据类型(jpg或者是序列化的对象)。

    一个key最大可以存储512MB。

    使用set和get方法存取

    Hash

    Redis hash是一个键值(key=>value)对集合。

    Redis hash是一个string类型的field和value的映射表,hash特别适合用于存储对象。

    Redis HMSET,HGETALL

    每个hash可以存储232 -1键值对(40多亿)。(2的32次方-1)

    4294967295,每个列表可存储40多亿

    List

    Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)。

    Lpush和lrange

    Set

    Redis的Set是string类型的无序集合。

    集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。

    添加一个string元素到,key对应的set集合中,成功返回1,如果元素已经在集合中返回0,key对应的set不存在返回错误。

    sadd key member

    Zset(sorted set:有序集合)

    Rediszset和set一样也是string类型元素的集合,且不允许重复的成员。

    不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。

    zset的成员是唯一的,但分数(score)却可以重复。

    zadd key score member

    相关文章

      网友评论

          本文标题:Redis第一天

          本文链接:https://www.haomeiwen.com/subject/ardnwxtx.html