Redis入门
Redis是一款依据BSD开源协议发行的高性能Key-Value存储系统.通常被成为数据结构服务器,因为值可以是字符串(String),哈希(Map),列表(list),集合(sets)和有序集合(sorted sets)等类型.
提供一个英文的在线互动学习地址: http://try.redis.io/
命令不需要管大小写,但是键大小写是敏感的
在redis,和json类似,类似键值对,所以一定要注意理解键key、值value
编程的都知道,以0开始,所以别被忽悠了
先列出常用命令
1 | DECR, DECRBY, DEL, EXISTS, EXPIRE, GET, GETSET, HDEL, HEXISTS, HGET, |
增删改查
设置键值,SET key value
,有点相当于关系型数据库中的插入
取值,GET key
,相当于关系型数据库中的查询
当我们设置值为integer时,使用INCR key
,会让值自增1
比如:
1 | SET key 10 |
DEL key
删除键值,相当于关系型数据库中的删除,返回1代表删除了一个键
当使用INCR key
时,如果键值不存在,会自动设置该键的值为1
当不同的客户端连接同一数据库,使用下面的操作,就会出现数据不同步,INCR是原子性操作,保证数据同步
1 | x = GET count |
- 客户端A连接,
count = 10
. - 客户端B连接,
count = 10
. - 客户端A设置
count = 11
. - 客户端B设置
count = 11
.
所以请使用INCR key
将键的值加1
1 | INCR key //如果键不存在,创建该键值为0,再加1;否则直接加1 |
当设置了一个键值,使用EXPIRE key time
设置多少时间(秒)后自动删除该键值.可以使用TTL key
命令得到自动删除的剩余时间.
1 | SET resource:lock "Redis Demo" |
list有序集合
有序集合,数组存储有顺序
1 | RPUSH friends "Alice" //如果没有list,就创建新的list,并在后面追加值 |
1 | LLEN friends => 3 //得到list长度 |
set无序集合
无序集合,数组存储没有顺序
1 | SADD superpowers "flight" //如果没有该键set,创建set,添加值 |
排序集合
类似有序集合,需要给集合中每一个元素指定分数,用于排序
1 | ZADD hackers 1940 "Alan Kay" |
哈希
就像在json中,key-value的value中,又包含了新的key-value
1 | HSET user:1000 name "John Smith" //如果没有该键会自动创建,并添加新值 |
总结
然后就没有然后了,就到这儿了