Redis 安装
redis_安装.png图中展示的是3.0.7 可以选择安装 或者去Redis官网 安装最新版本
Redis特性
- 速度快 10W OPS
- 单线程
- 数据持久化(RDB AOF)
- 高可用分布式
- 缓存系统
- 主从复制
Redis通用命令
- keys 遍历出所有的key keys * keys [pattern] keys ph? 问号代表一位 O(n)
- dbsize 数据库大小 内置计数器 O(1)
- exists key 检验key是否存在 返回 1 0
- del key [key ...] 删除key 可以删除多个
- expire key seconds 设置key存在的时间 用于缓存的时候
- pexpire key ttl 将键的生存时间设为 ttl 毫秒
- expireat key timestamp 将键的过期时间设为 timestamp 所指定的秒数时间戳
- pexprieat key timestamp 将键的过期时间设为 timestamp 所指定的毫秒数时间戳.
- type key 查看key的类型 不存在的返回none
- ttl 查询key过期时间 返回 -2 已经过期删除 -1 存在key没有过期时间
- persist 取消过期时间
Redis 数据类型
- String
- value 可以是 "world",1,bits,json串 最大512M 100K以内
- 使用场景 缓存、计数器、分布式锁
- 命令
- get key
- set key value
- del key
- incr,decr,incrby,decrby
- set setnx setxx
- mget mset
- getset append strlen
-
incrbyfloat getrange setrange
String_getset.png
- Hash
- 特点 value -> field属性 value
- 命令
- hget,hset,hdel
- hexists,hlen
- hmget,hmset
- hincrby
- hgetall,hvals,hkeys
-
hsetnx hincrby hincrbyfloat
hash_hexists.png
- List
- 特点 value -> 有序的、可重复的队列
- 命令
- rpush,lpush,linsert,lpop,rpop,lrem,ltrim
- lrange,lindex,llen
- lset
-
blpop brpop
list_blpop.png
- 集合
- 特点 无序 不允许重复元素 集合间操作
- 命令
- sadd srem
- scard sismember srandmember smembers
-
spop sinter sdiff sunion
set_sadd.png
- 有序集合
- 特点 有序
- 命令
- zadd score可以重复 element 不可以重复
- zrem,zscore,zincrby,zcard
- zrange,zcount,zremrangebyrank,zremrangebyscore
-
zrevrank zrevrange
zset_order_show.png
其他功能
- 慢查询
- pipeline
- 流水线-解决N次网络操作 浪费的时间“
- 发布订阅
- bitmap
- setbit getbit bitcount bitop bitpos
- hyperloglog
- 极小的空间 完成独立用户统计 本质还是字符串
- 命令
- pfadd key element [element ...] 添加元素
- pfcount key [key ...] 计算hyperloglog的独立总数
- pfmerge destkey sourcekey [sourcekey ...] 合并多个hyperloglog
- 是否容忍错误 是否需要独立数据 是否需要小内存存独立用户
- geo
- GEO是什么-地理信息定位 存经纬度 计算两地距离 范围计算
- type 是个zset
- 命令
- geoadd key longitude latitude memeber
- geopos key memeber[memeber ...]
- geodist key memeber1 member2 [unit](m km mi ft)
-
georadius
georadius.png
Redis语言客户端
- Jedis (JAVA客户端)
- redis-py (Python客户端)
- redigo (Go客户端)
网友评论