redis
命令
string
- set key name
- del key
- ttl key
- get key
- exists key
- keys *me
- keys *
- flushall 删除全部
- ttl key
- -1不过期
- -2已经过期
- 整数 剩余时间
- expire key 10 设置过期时间10s
- setex key 5 value 增加一个key并设置时间
- setnx key value 如果key已经存在不做任何操作
list 可重复 有顺序
- lpush key elements 左push element
- rpush key elements 右push element
- lpop num 从左pop num个
- rpop num 从右pop num个
- llen letter 查看有多少元素
- lrange key start end
- end如果是-1的话就是全部内容
- ltrim key start end
- 只保留start-end之间的元素
set 集合 不能重复 无序
- sadd key ele 设置键值对
- smembers key查看所有member
- sismember key member
- srem key member 删除成员
SortedSet 有序集合
- zadd key 600 清华 500 复旦
- zrange key 0 -1 (withscores) 显示数字与否
- zscore key member 显示数字
- zrank key member 查看排名 从小到大
- zrevrank key member 从大到小
hash键值对
- hset key field value
- hget key field 得到值
- hgetall key 得到所有键值对, 成对出现的
- hdel key field 删除键值对
- hexists key field 是否存在键值对
- hkeys key 获取所有键
- hlen key 有多少个键值对
发布订阅
- subscribe geekhour 订阅
- subscribe channel [channel …]
- publish geekhour redis 发布
stream 轻量的消息队列
- xadd key * field value
- xadd key threshold field value
- *是自动生成消息id
- xlen key 查看有多少消息
- xrange key start end 显示所有消息
- xrange key - +显示所有内容
- xdel key threshold s
- xtrim key start end
- xtrim key maxlen 0 删除所有消息
- xread count 2 block 1000 streams key 0
- 读两个消息
- 如果没有消息就阻塞1000ms
- 0表示从头开始读
- 可以重复读
- 0变$的话 就读取最新的消息
- xgroup create key group id 创建组
- xgroup createconsumer key group membername添加组成员
- xreadgroup group groupname consumer1 count 2 block 3000 streams key >
geospatial 空间地理
- geoadd key longitude latitude member
- 经纬度 member
- geopos key member member(km)
- 获取两地距离
- geosearch key frommember member byradius 300 km
- 翻译附近城市, 半径300km
- bybox返回矩形范围
hyperloglog 基数计算, 会有一定误差, 查看有多少不同的
- pfadd key
- pfcount
bitmap 位图
- setbit key offset value
- getbit key 0 获取偏移量值
- set key “\xF0” 设置11110000
- bitcount key 统计有多少1
- bitpos key 0 [start end]第一个出现0的位置是多少
- 位置从0开始算
- 从范围开始查找
事务
- multi
- 各种操作会被放到队列中, 被缓存起来, 并且某一条语句执行失败, 不会影响其他操作
- 事务执行过程中, 其他操作不会被插入事务当中
- exec
持久化 保证内存数据在断电后不消失
- rdb redis database
- save 可以保存快照
- 会生成dump.rdb
- save中会处在阻塞中
- bgsave可以fork()一个来保存到磁盘
- save 可以保存快照
- aof append only file
- appendonly改成yes
replication 主从复制
-
只能从主节点到从节点
-
主节点负责写, 从负责读
-
sentinel 哨兵模式, 负载均衡, 自动故障转移
-
sentinel.conf
1 2
entinel monitor master 主节点的ip地址和端口号 用空格分隔 1 只有一个哨兵节点同意就可以转移
-
redis-sentinel sentinel.conf 启动哨兵模式
-