redis学习笔记

简介

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

Author: bkdwei