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 SHUTDOWN
2.3.1 发送命令
参数模式
redis-cli -h 127.0.0.1 -p 6379
redis-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 15
1、获得符合规则的键名列表
KEYS pattern
patern支持glob风格通配符set bar 1
keys *
keys命令需要遍历Redis中的所有键,会影响性能,不建议用。2、判断一个键是否存在
exists bar
exists no
//返回值是(integer) 0
3、删除键
del bar
del命令不支付通配符redis-cli keys "user:*" | xargs redis-cli del
来实现删除4、获取键值的数据类型
type bar
3.2.1 介绍
3.2.2 命令
1、复制与取值
set key hello
get key
2、递增数字
INCR num
3.2.3 实践
3.2.4 命令拾遗
1、增加指定的整数
INCRBY bar 2
2、减少指定的整数
DECR bar
只是递减,无法减多少3、增加指定浮点数
INCRBYFLOAT bar 2.7
4、向尾部追加值
set key hello
append key " world!"
// 返回的是总长度5、获取字符串长度
STRLEN key
3.3.1 介绍
3.3.2 命令
1、赋值与取值
HSET car price 500
HSET car name BMW
HGET car name
HMSET
命令。HMGET car price name
// 同时获得多个字段的值HGETALL car
// 想获取键中所有字段和这段值都不知道键中有哪些字段时2、判断字段是否存在
HEXISTS car model
3、当字段不存在时赋值
HSETNX
// 是原子操作,不用担心竞态条件。4、增加数字
HINCRBY person score 60
// person键不存在,会创建该键并默认score字段在执行命令前的值为“0”。返回值是60HINCRBY person score 1
// 因为存在了,所以返回值是615、删除字段
3.3.3 实践 lionel也没怎么好好看
3.3.4 命令拾遗
1、只获取字段名或字段值
HKEYS car
HVALS car
2、获取字段数量
HLEN car
3.4.1 介绍
3.4.2 命令
1、向列表两端增加元素
LPUSH numbers 1
// 返回列表的长度 1RPUSH numbers 0 -1
// 返回列表的长度 32、从列表两端弹出元素
LPOP numbers
RPOP numbers
3、获取列表中元素的个数
HLEN numbers
4、获取列表片断
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 0
LSET numbers 1 7
2、只保留列表指定片段
LRANGE numbers 0 -1
3、向列表中插入元素
LINSERT numbers AFTER 7 3
LINSERT numbers BEFORE 2 1
4、将元素从一个列表转到另一个列表
RPOPLPUSH
3.5.1 介绍
3.5.2 命令
1、增加/删除元素
SADD letters a b c
// 返回增加的个数 3SREM letters c d
// 返回删除的个数1,因为d本身就不存 在2、获得集合中的所有元素
SEMBERS letters
3、判断元素是否在集合中
SISMEMBER letters a
4、集合间运算
SDIFF
SINTER
SUNION
3.5.3 实践
3.5.4 命令拾遗
1、获得集合中元素个数
SCARD letters
2、进行集合运算并将结果存储
SINTERSTORE
3、随机获得集合中的元素
SRANDMEMBER letters
4、从集合中弹出一个元素
SPOP letters
3.6.1 介绍
3.6.2 命令
1、增加元素
ZADD scoreboard 89 Tom 67 Peter 100 David
2、获得元素的分数
ZSCORE scoreboard Tom
69/224 lionel 没怎么读3.6.3 实践
3.6.4 命令拾遗
1、获得集合中元素的数量
ZCARD scoreboard
4.1.1 概述
MULTI
命令告诉Redis,下面的命令属于事务。4.1.2 错误处理
4.1.3 WATCH命令介绍
UNWATCH
取消监控4.2.1 命令介绍
SET session:29e3d uid1314
EXPIRE 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 redis
5.3.2 使用方法
import redis
// 引入redis-py5.3.3 简便用法
5.4.1 安装
npm install ioredis
5.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 6379
SALVEOF
命令会停止和原来数据库的同步转而和新数据库同步。8.1.4 读写分离与一致性
8.2.3 实现原理
8.2.4 哨兵的部署
8.3.1 配置集群
9.2.1 简单协议
9.3.1 redis-cli
耗时命令日志
redis> SLOWLOG GET
命令监控
redis> MONITOR
20181117从头开始看到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。也没有过多学习新知识,就是看个大概。