简介
Key-Value数据库
特点
支持数据的持久化
丰富的数据类型,支持key-value、list,set,zset,hash等数据结构
支持master-slave模式的数据备份、
所有操作都是原子性的
丰富的特性 – Redis还支持 publish/subscribe, 通知, key 过期等等特性。
附加资料
redis官网:http://redis.io/
redis官方文档:http://redis.io/documentation
redis教程:http://www.w3cschool.cn/redis/redis-intro.html
redis下载:http://redis.io/download
配置
- loglevel:debug、verbose、notice、warning,默认为verbose
- databases:设置数据库的数量
- save :定在多长时间内,有多少次更新操作,就将数据同步到数据文件
- rdbcompression:存储至本地数据库时是否压缩数据,默认yes
- dir:本地数据库存放目录
- slaveof :设置当本机为slav服务时,设置master服务的IP地址及端口,在Redis启动时,它会自动从master进行数据同步
- appendonly:是否在每次更新操作后进行日志记录
- appendfsync:更新日志条件,no,always,everysec
- vm-enabled:是否启用swap
数据类型
string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)
运维
备份与还原
save,bgsave,config get dir
将备份文件放到安装目录即可自动还原
密码
requirepass pwd
auth pwd
客户端链接管理
-CLIENT LIST -CLIENT KILL
管道技术
Redis 管道技术可以在服务端未响应时,客户端可以继续向服务端发送请求,并最终一次性读取所有服务端的响应。
命令
- set key value
- del key
- get key
- mget key1 key2 key3:获取多个key的值
- getrange key begin end
- dump key :序列化key,并返回序列化的值
- exists key
- expire key seconds
- expireat key uxinx_timestamp:指定过期的unix时间戳
- keys patten:查找所有符合给定模式( pattern)的 key 。
- MOVE key db:将当前数据库的 key 移动到给定的数据库 db 当中。
- PERSIST key:取消key的过期时间
- pttl key:以毫秒为单位返回 key 的剩余的过期时间。
- ttl key:以秒为单位返回 key 的剩余的过期时间。
- RANDOMKEY:随机返回一个key
- RENAME key newkey
- TYPE key
- getset key value:获取值,并设置新值
- setex key seconds value:设置过期时间的key
- psetex key seconds value:设置过期时间的key,毫秒计时
- setnx key value:不存在时才设置
- setrange key offset value:从指定偏移替换值
- strlen key:返回长度
- mset key1 value1 key2 value2
- msetnx key1 value1 key2 value2:当所有key都不存在时设置
- incr key
- incrby key value
- incrbyfloat key value
- decr key
- decr key value
- append key value:字符串拼接
hash
- hmset key field value field value
- hgetall key
- hdel key field1 field2
- hexists key field
- hget key field1 filed2
- hincrby key field value
- hincrbyfloat key field value
- hkeys key
- hlen key
- hset key filed value
- hsetnx key field value
- hvals key
list
- lpush key value1 value2
- rpush key value1 value2
- rpushx key value:列表存在时才插入
- rpushx key value
- lpop key
- rpop key
- BLPOP key1 [key2 ] timeout:阻塞式弹出左边的元素
- BRPOP key1 [key2 ] timeout:阻塞式弹出右边的元素
- BRPOPLPUSH source destination timeout:阻塞式移动一个元素到另一个列表,右出左进
- RPOPLPUSH source destination
- lindex key index:通过索引获取元素
- LINSERT key BEFORE|AFTER pivot value:在列表的元素前或者后插入元素
- LLEN key
- LRANGE key start stop:获取列表指定范围内的元素
- LSET key index value
- LTRIM key start stop:删除范围外的元素
- lrem key count value:根据参数 COUNT 的值,移除列表中与参数 VALUE 相等的元素
set
- SADD key member1 [member2]
- SCARD key:获取集合的成员数,类似len
- SDIFF key1 [key2]:差集
- SDIFFSTORE destination key1 [key2]:将差集放到destination
- SINTER key1 [key2]:交集
- SINTERSTORE destination key1 [key2]
- SISMEMBER key member
- SMEMBERS key
- SMOVE source destination member
- SPOP key:移除并返回集合中的一个随机元素
- SRANDMEMBER key [count]
- SREM key member1 [member2]
- SUNION key1 [key2]
- SUNIONSTORE destination key1 [key2]
sorted set
- ZADD key score1 member1 [score2 member2]
- ZCARD key
- ZCOUNT key min max:计算在有序集合中指定区间分数的成员数
- ZINCRBY key increment member
- ZINTERSTORE destination numkeys key1 key2 WITHSCORES:将多个集合的score相加
- ZLEXCOUNT key min max
- ZRANGE key start stop [WITHSCORES]
- ZRANGEBYLEX key min max [LIMIT offset count]
- ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT]
- ZRANK key member:获取索引
- ZREM key member [member …]
- ZREMRANGEBYLEX key min max
- ZREMRANGEBYRANK key start stop
- ZREMRANGEBYSCORE key min max
- ZREVRANGE key start stop [WITHSCORES]:从高到低排序
- ZREVRANGEBYSCORE key max min [WITHSCORES]
- ZREVRANK key member
- ZSCORE key member:返回分数值
- ZUNIONSTORE destination numkeys key [key …]:并集
HyperLogLog计数器
- PFADD key element [element …]
- PFCOUNT key [key …]
- PFMERGE destkey sourcekey [sourcekey …]
订阅和发布
- SUBSCRIBE channel [channel …]
- UNSUBSCRIBE [channel [channel …]]
- PUBLISH channel message
- PSUBSCRIBE pattern [pattern …]:根据模式订阅
- PUNSUBSCRIBE [pattern [pattern …]]:查看订阅与发布系统状态。
- PUBSUB subcommand [argument [argument …]]
事务
multi,exec,discard,watch ,unwatch