Redis第一天

2017-12-20  本文已影响0人  与我常在1053

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

上一篇下一篇

猜你喜欢

热点阅读