您的位置:首页 > 数据库 > Redis

王高利:Redis入门

2016-04-16 23:26 627 查看
redis安装请点击这里:Redis安装
[b]redis数据结构[/b]
[b][b]1、string[/b][/b]
string是简单的类型,可以理解成与Memcached一样的类型,一个key对应一个value;支持的操作也与Memcached的操作类似,不过它的功能更丰富。可以存二进制的对象。
操作之前先做个别名,因为进入redis的命令很长,每次输入都很麻烦。

set
set 即集合,和我们数学中的集合概念相似,对集合的操作有添加、删除元素,有对多个集合求交、并、差等操作。操作中的 key 理解为集合的名字。 比如微博应用中,可以将一个用户所有的关注人存储在一个集合中,将其所有粉丝存储在一个集合。因为 Redis 非常人性化的为集合提供了求交集、并集、差集等操作,你还可以使用不用的命令选择将结果返回给客户端还是存储到一个新的集合中。
另外QQ也有一个社交功能叫“好友标签”,大家可以给好友贴标签,比如“高富帅”“白富美”“欧巴”等,这时就可以使用 Redis 的集合来实现,把每一个用户的标签都存储在一个集合之中。[b]示例:[/b]sorted set sorted set 即有序集合,它比 set 多一个权重参数 score,使得集合中的元素能够按 score 进行有序排列,比如一个存储全班同学成绩的 Sorted Sets,其集合 value 可以是同学的学号,而 score 就可以是其考试成绩,这样在数据插入集合的时候,就已经进行了天然的排序。[b]示例:[/b]hash 在 Redis 中,我们经常将一些结构化的信息打包成 hashmap,在客户端序列化后存储为一个字符串的值(一般是 JSON 格式)。可以把多个键值对存储到一个 hash 中去,比如用户的昵称、年龄、性别可以存储到一个 hash 中去。
示例:Redis持久化 Redis 提供了两种持久化的方式,分别是 RDB(Redis DataBase)和AOF(Append Only File)。
RDB 简而言之就是在不同的时间点,将 redis 存储的数据生成快照并存储到磁盘等介质上。 AOF 则是换了一个角度来实现持久化,是将 redis 执行过的所有写指令记录下来,在下次 redis 重新启动时,只要把这些写指令从前到后再重复执行一遍,就可以实现数据恢复了。
其实 RDB 和 AOF 两种方式可以同时使用,在这种情况下,如果 redis 重启的话,则会优先采用 AOF方式来进行数据恢复,这是因为 AOF 方式的数据恢复完整度更高。
如果没有数据持久化的需求,也完全可以关闭 RDB 和 AOF 方式,这样的话,redis将会变成一个纯内存数据库,就像 Memcached 一样。[b]Redis配置文件解析[/b]配置文件:/usr/local/redis/etc/redis.conf1、查看及重设配置2、[b]Redis通用配置[/b]1)daemonize no //默认情况下redis并不是以daemon形式来运行的,通过daemonize配置项可以控制redis的运行方式。
2)pidfile /path/to/redis.pid //当以daemon形式运行时,redis会默认生成一个pid文件/var/run/redis.pid3)bind 192.168.1.2 10.8.4.2 //指定绑定的ip,可以有多个4)port 6379 //指定监听端口5)unixsocket /tmp/redis.sock //也可以监听socket6)unixsocketperm 755 //当监听socket时可以指定权限为7557)timeout 0 //当一个redis-client一直没有请求发出server端,那么server端有权主动关闭这个连接,可以通过timeout来设置“空闲超时时限”,0表示永不关闭。8)tcp-keepalive 0 //tcp连接保活策略,可以通过tcp-keepalive配置项来进行设置,单位为秒,假如设置为60秒,则server端会每60秒向连接空闲的客户端发起一次ACK请求,以检查客户端是否已经挂掉,对于无响应的客户端则会关闭其连接。如果设置为0,则不会进行保活检测。
9)loglevel notice //日志级别,有debug、verbose、notice、warning四种。10)logfile "" //定义日志路径
11)syslog-ident redis //如果希望日志打印到syslog中,通过syslog-enabled来控制。另外,syslog-ident还可以让你指定syslog里的日志标志。12)syslog-facility local0 //指定syslog的设备,可以是USER或者local0-local713)databases 16 //设置数据库的总数量,select n选择数据库,0-153、Redis快照配置(RDB持久化)1)save 900 1 //表示每15分钟且至少有1个key改变,就触发一次持久化
2)save 300 10 //表示每5分钟且至少有10个key改变,就触发一次持久化3)save 60 10000 //表示每60秒且至少有10000个key改变,就触发一次持久化4)save "" //这样可以禁用RDB持久化5)stop-writes-on-bgsave-error yes //RDB持久化写入磁盘避免不了会出现失败的情况,默认一旦出现失败,redis会马上停止写操作。如果你觉得无所谓,那就可以使用该选项关闭这个功能。6)rdbcompression yes //是否要压缩7)rdbchecksum yes //是否进行数据校验8)dbfilename dump.rdb //定义快照文件的名字9)dir ./ //定义快照文件存储路径
4、[b]Redis安全相关配置[/b]1)requirepass 123456 //设置redis-server的密码,登入命令为:redis-cli -a 123456
2)rename-command config tpplinux.config //将config命令更名为tpplinux.config,这样可以避免误操作,但如果使用了AOF持久化,建议不要启用该功能。3)rename-command config "" //定义为空,表示禁掉了config命令。
5、[b]Redis限制相关配置[/b]1)maxclients 10000 //限制最大客户端连接数2)maxmemory <bytes> //设定最大内存使用数,单位是byte
3)maxmemory-policy volatile-lru //指定内存移除规则4)maxmemory-samples 3 //LRU算法和最小TTL算法都并非是精确的算法,而是估算值。所以你可以设置样本的大小。假如redis默认会检查三个key,并选择其中LRU的那个,那么你可以改变这个key样本的数量。
6、[b]Redis AOF持久化相关配置[/b]1)appendonly yes //开启持久化2)appendfilename "appendonly.aof" //指定aof文件(二进制日志形式)名字,保存在dir参数指定的目录3)appendfsync everysec //指定fsync()调用模式,有三种:no(不调用fsync)、always(每次写都会调用fsync)、ecverysec(每秒钟调用一次fsync)。第一种最快;第二种数据最安全,但性能会差一些;第三种为这种方案,默认为第三种。4)no-appendfsync-on-reweite no //使用no可避免当写入量非常大时的磁盘io阻塞。
5)auto-aof-rewrite-percentage 10 //规定什么情况下会触发aof重写。该值为一个比例,10表示当aof文件增幅达到10%时则会触发重写机制。6)auto-aof-rewrite-min-size 64mb //重写会有一个条件,就是不能低于64MB
7、[b]Redis 慢日志相关配置[/b] 针对慢日志,可以设置两个参数,一个是执行时长,单位是微秒;另一个是慢日志的长度。当一个新的命令被写入日志时,最老的一条会从命令日志队列中被移除。1)slowlog-log-slower-than 10000 //慢于10000微秒,则记录日志2)slowlog-max-len 128 //日志长度
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  密码 二进制 redis