fansenjun 2019-06-29
1.2.2 内存存储与持久化
1.2.3 功能丰富
1.2.4 简单稳定
HGET post:1 title // 读取键名为post:1 的散列类型键的title字段的值2.1.1 在POSIX系统中安装
2.1.3 在Windows中安装
make后继续执行make install相应的6个命令会拷贝到/usr/local/bin目录下。2.2.1 启动Redis
直接启动
redis-server,默认端口是6379;可以用port参数指定,即redis-server --port 6380通过初始化脚本启动
redis/utils/redis_init_script的脚本文件/etc/init.d目录中2.2.2 停止Redis
redis-cli SHUTDOWN2.3.1 发送命令
参数模式
redis-cli -h 127.0.0.1 -p 6379redis-cli PING交互模式
redis-cli后,再输入PING或ECHO hi 无关大小写2.3.2 命令返回值
redis-server /path/to/redis.conf 这个路径我没找到,只是解压目录下有个redis.conf文件$redis> CONFIG SET命令在不重新启动Redis的情况下动态修改部分Redis配置select 0到select 151、获得符合规则的键名列表
KEYS pattern patern支持glob风格通配符set bar 1keys * keys命令需要遍历Redis中的所有键,会影响性能,不建议用。2、判断一个键是否存在
exists barexists no //返回值是(integer) 03、删除键
del bar del命令不支付通配符redis-cli keys "user:*" | xargs redis-cli del来实现删除4、获取键值的数据类型
type bar3.2.1 介绍
3.2.2 命令
1、复制与取值
set key helloget key2、递增数字
INCR num3.2.3 实践
3.2.4 命令拾遗
1、增加指定的整数
INCRBY bar 22、减少指定的整数
DECR bar 只是递减,无法减多少3、增加指定浮点数
INCRBYFLOAT bar 2.74、向尾部追加值
set key helloappend key " world!" // 返回的是总长度5、获取字符串长度
STRLEN key3.3.1 介绍
3.3.2 命令
1、赋值与取值
HSET car price 500HSET car name BMWHGET car nameHMSET命令。HMGET car price name // 同时获得多个字段的值HGETALL car // 想获取键中所有字段和这段值都不知道键中有哪些字段时2、判断字段是否存在
HEXISTS car model3、当字段不存在时赋值
HSETNX // 是原子操作,不用担心竞态条件。4、增加数字
HINCRBY person score 60 // person键不存在,会创建该键并默认score字段在执行命令前的值为“0”。返回值是60HINCRBY person score 1 // 因为存在了,所以返回值是615、删除字段
3.3.3 实践 lionel也没怎么好好看
3.3.4 命令拾遗
1、只获取字段名或字段值
HKEYS carHVALS car2、获取字段数量
HLEN car3.4.1 介绍
3.4.2 命令
1、向列表两端增加元素
LPUSH numbers 1 // 返回列表的长度 1RPUSH numbers 0 -1 // 返回列表的长度 32、从列表两端弹出元素
LPOP numbersRPOP numbers3、获取列表中元素的个数
HLEN numbers4、获取列表片断
LRANGE numbers 0 2 // 获取一个区间的数据5、删除列表中指定的值
LREM numbers 0 -1 // count=0,删除所有“-1”的元素LREM numbers -1 // count<0,从列表右边开始删除第1个元素;cout>0时,从左边删3.4.3 实践 lionel没怎么看
3.4.4 命令拾遗
1、获得/设置指定索引的元素值
LINDEX numbers 0LSET numbers 1 72、只保留列表指定片段
LRANGE numbers 0 -13、向列表中插入元素
LINSERT numbers AFTER 7 3LINSERT numbers BEFORE 2 14、将元素从一个列表转到另一个列表
RPOPLPUSH3.5.1 介绍
3.5.2 命令
1、增加/删除元素
SADD letters a b c // 返回增加的个数 3SREM letters c d // 返回删除的个数1,因为d本身就不存 在2、获得集合中的所有元素
SEMBERS letters3、判断元素是否在集合中
SISMEMBER letters a4、集合间运算
SDIFFSINTERSUNION3.5.3 实践
3.5.4 命令拾遗
1、获得集合中元素个数
SCARD letters2、进行集合运算并将结果存储
SINTERSTORE3、随机获得集合中的元素
SRANDMEMBER letters4、从集合中弹出一个元素
SPOP letters3.6.1 介绍
3.6.2 命令
1、增加元素
ZADD scoreboard 89 Tom 67 Peter 100 David2、获得元素的分数
ZSCORE scoreboard Tom 69/224 lionel 没怎么读3.6.3 实践
3.6.4 命令拾遗
1、获得集合中元素的数量
ZCARD scoreboard4.1.1 概述
MULTI命令告诉Redis,下面的命令属于事务。4.1.2 错误处理
4.1.3 WATCH命令介绍
UNWATCH取消监控4.2.1 命令介绍
SET session:29e3d uid1314EXPIRE session:29e3d 900 // 让session:29e3d键在15分钟后被删除。 EXPIRE命令设置一个键的过期时间,到时期后Redis会自动删除它TTL session:29e3d // session:29e3d键的剩余时间PERSIST session:29e3d // 取消session:29e3d键的过期时间设置4.2.2 实现访问频率限制之一
4.2.4 实现缓存
4.3.3 BY参数
SORT sortbylist BY somkey->somefield:* // *只能在->符号前面才有用,否则只会被当作字段名本身4.3.4 GET参数
SORT tag:ruby:posts BY post:*->time DESC post:*->title // GET参数不影响排序,作用是使SORT命令的返回结果不再是元素自身的值,而是GET参数中指定的键值。4.3.5 STORE参数
SORT tag:ruby:posts BY post:*->time DESC GET post:*->title GET post:*->time GET # STORE sort.result // 保存排序结果,默认是直接返回排序结果的4.3.6 性能优化
使用SORT命令时有几点注意:
4.4.4 “发布/订阅”模式
PUBLISH channel.2 hi // 向channel.2说一声“hi” 发布者SUBSCRIBE chanel.2 // 订阅者4.4.5 按照规则订阅
PSUBSCRIBE channel.?* // 订阅指令的规则,支持glob风格通配符4.6.2 内部编码优化 lionel没好好看
5.1.1 安装
require './dir/autoload.php' 假设在dir目录下,后面会用到。5.1.2 使用方法
创建一个连接
$redis = new dir\Client();$redis = new dir\Client(arry('scheme'=>'tcp','host'=>'127.0.0.1','port'=>6379,));echo $redis->get('foo');5.2.1 安装
gem install redis安装新版的redis-rb5.3.1 安装
pip install redis5.3.2 使用方法
import redis // 引入redis-py5.3.3 简便用法
5.4.1 安装
npm install ioredis5.4.2 使用方法
var Redis = require('ioredis');5.4.3 简便用法
6.1.1 脚本介绍
脚本的好处:
6.2.1 Lua语法
6.2.2 标准库
6.2.3 其他库
6.3.3 脚本相关命令
6.3.4 应用实例
6.4.3 其他脚本相关命令
0、
在以下情况对数据进行快照:
7.1.5 快照原理
7.2.1 开启AOF
appendonly yes**通过手工开启,默认没有开启(AOF append only file)7.2.3 同步硬盘数据
appendfsync everysec // 采用everysec规则8.1.1 配置
$ redis-server --port 6380 --slaveof 127.0.0.1 6379SALVEOF命令会停止和原来数据库的同步转而和新数据库同步。8.1.4 读写分离与一致性
8.2.3 实现原理
8.2.4 哨兵的部署
8.3.1 配置集群
9.2.1 简单协议
9.3.1 redis-cli
耗时命令日志
redis> SLOWLOG GET命令监控
redis> MONITOR20181117从头开始看到3.2.4节(1-37/224),用时1h16min。不太理解的地方
20181119从3.2.4看到4.1.2(37-80/224),用时1h02min。差不多我只能坚持看1小时书。
20181120从4.1.2看到5.3.1(80-126/224),用时40min
20181121从5.3.1看到7.1.4(126-169/224),用时21min。其实没怎么看,就是过了下结构。
20181123从7.1.5看到结束(169-224/224),用时26min。也没有过多学习新知识,就是看个大概。