redis-api

Redis API的使用和理解

通用命令

  • keys 查看所有的key, 可以使用通配符 */[a-b], 一般不在生产环境中使用. 由于单线程特性, 该命令会造成阻塞 代替: 热备从节点(在备机上使用)/scan O(n)的时间复杂度

  • dbsize 统计键值对数量

  • exists key 判断是否存在, 返回1 存在, 返回0 不存在

  • del key 删除指定的key,可以同时删除多个key

  • expire key seconds 设置过期时间

  • ttl key 查看剩余过期时间

  • persist key 去掉过期时间

  • type key 返回key的数据类型 string, hash, list, set ,zset, none

数据结构和内部编码

单线程

所有操作都是顺序执行的

  1. 纯内存操作
  2. 非阻塞IO
  3. 避免线程切换和竞态条件
  4. 一次只运行一条命令
  5. 拒绝长(慢)命令 keys flushall, flushdb, slow lua script, mutil/exec ,operate big value (collection)
  6. 其实不是单线程 fysnc file description/close file description

字符串

  1. 结构和命令
    场景: 缓存、计数器、分布式锁
get key
set key 
del key 
incr key 自增1
decr key 自减1
incrby key k 自增k
decrby key k 自减k
mget key1 key2 key3
mset key1 v1 k2 v2 k3 v3

哈希

key field value
fileld 不能相同

hget key field
hset key fileld value 
hdel key field
hexists key field 判断是否存在
hlen key 属性个数
hmget key field1 field2 field3
hmset key f1 v1 f2 v2 f3 v3

列表

  • 有序
  • 可以重复
  • 左右两边插入弹出
rpush key value1 value2 v3 右边添加
lpush key v1 v2 v3
linsert key before|after value newValue
lpop key 从左边弹出元素
rpop key 从右边弹出元素
lrem key count value 
ltrim key start end
lrange key start end(包含)
lindex key index
llen key 获取列表长度
lset key index newValue
blpop key timeout 阻塞指定的时间
brpop key timeout

集合s

无序
不允许重复元素

sadd key element
srem key element
scard
sismember
srandmember 抽奖
spop
smembers 返回结果无序,返回所有元素,谨慎阻塞
sdiff 差集
sinter 交集
sunion 并集

有序集合z

有序,不重复

zadd key score element
zrem key element
zscore key element 返回元素的分数
zincrby key increscore element 分数自增
zcard key 返回个数
zrank key element 获取排名
zrange key start end [WITHSCORES]
zrangebyscore key minScore maxScore
zcount key minScore maxScore
zremrangebyrank key start end 删除指定排名内的元素
zremrangebyscore key minScore maxScore
zrevrank 
zrevrange
zrevrangebyscore
zinterstore
zunionstore

用处: 排行榜

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Redis API文档。Redis(全称:Remote Dictionary Server 远程字典服务)是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持。从2013年5月开始,Redis的开发由Pivotal赞助。redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。Redis 是一个高性能的key-value数据库。 redis的出现,很大程度补偿了memcached这类key/value存储的不足,在部 分场合可以对关系数据库起到很好的补充作用。它提供了Java,C/C++,C#,PHP,JavaScript,Perl,Object-C,Python,Ruby,Erlang等客户端,使用很方便。Redis支持主从同步。数据可以从主服务器向任意数量的从服务器上同步,从服务器可以是关联其他从服务器的主服务器。这使得Redis可执行单层树复制。存盘可以有意无意的对数据进行写操作。由于完全实现了发布/订阅机制,使得从数据库在任何地方同步树时,可订阅一个频道并接收主服务器完整的消息发布记录。同步对读取操作的可扩展性和数据冗余很有帮助。redis的官网地址,非常好记,是redis.io。(域名后缀io属于国家域名,是british Indian Ocean territory,即英属印度洋领地)目前,Vmware在资助着redis项目的开发和维护。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值