基本操作
redis是单进程处理客户端的请求,对读写事件的响应通过对epoll函数的包装来实现。
redis 默认使用0号库,一共有16个库。可以用角标切换库
DBSIZE 查看所有key的数量
keys * 查看当前库所有的存储数据
flushdb 清理当前库所有数据
flushall 清理所有库的数据
默认端口6379
基本常见五大数据类型
redis 命令参考
http://doc.redisfans.com/
- String 字符串
- key
- List 列表
- Set 集合
- Hash 哈希(map)
- Zset(sorted set) 有序集合
String
redis中最基本的数据类型,可以理解成Memcached一摸一样的类型,一个key对应一个value,value最多是521M
String类型是二进制安全的。意思是redis的String可以包含任何数据,比如jpg图片或序列化的对象。
1.set key value
2.get key
3.getrange key start end ->返回key中字符串值的子字符(下表包含)
4.getset key value ->将给定key得值设为value,并返回key得旧值
5.getbit key offset ->对key所存储得字符串值,获取指定偏移量上得位
6.mget key1,key2 ->获取一个或多个key值
7.setbit key offset value ->对key所存储得字符串值,设置或清楚指定偏移量上得位
8.setex key seconds value ->将值value关联到key,并将key得过期时间设位seconds(秒)
9.setnx key value ->只有在key不存在时设置key的值
10.setrange key offset value ->用value参数覆写给定key所存储得字符串值,从偏移量offset开始
11.strlen key ->返回key所存储得字符串得长度
12.mset key value[key value...] ->同时设置一个或多个key-value对
13.msetnx key value[key value...] ->同时设置一个或多个key-value,当且仅当所有给定key都不存在
14.incr key ->将key中存储得数值增一
15.incrby key increment ->将key所存储得值加上给定得增量值
16.incrbyfloat key increment ->将key所存储得值加上给定得浮点增量值
17.decr key ->将key中存储得数子值减一
18.append key value ->如果key已经存在并且是一个字符串,将value值追加到key原来的值得末尾
Key
1.exists key ->判断键是否存在:返回1有值,0无值
2.move key db ->把指定key移到指定库中
3.ttl key 查看当前键的剩余存储时间->返回-1:永不过期 -2:已经过期
注意:过期之后
4.expire key 时间(秒) ->为给定的key设置过期时间
5.type key ->查看key是什么类型
6.keys * ->查看当前库所有key
7.del key ->删除key
8.set key value ->把已存在的key的value值覆盖替换
9.dump key ->序列化给定key,并返回被序列化的值
10.persist key ->移除key的过期时间,讲持久保持
11.randomkey ->从当前库随机返回一个key
12.rename key newkey ->修改key的名称
13.renamenx key newkey ->仅当newkey不存在时,讲key修改为newkey
Hash
是一个键值对集合
是一个String类型的field和value的映射表,特别适合用于存储对象。
类似于java中的map<String,Object>
1.hdel key field1 [field2] ->删除一个或多个哈希表字段
2.hexists key field ->查看哈希表key中,指定的字段是否存在
3.hget key field ->获取存储在哈希表中指定字段的值
4.hgetall key ->获取哈希表中指定key的所有字段和值
5.hincrby key field increment ->为哈希表key中的指定字段的整数值加上增量increment
6.hincrbyfloat key field increment ->为哈希表key中指定字段的浮点数值加上增量increment
7.hkeys key ->获取所有哈希表中的字段
8.hlen key ->获取哈希表中字段的数量
9.hmget key field1 [field2] ->获取所有给定字段的值
10.hmiset key field value1 [field2 value2] ->同时将多个field-value(域-值)对设置到哈希表key中
11.hset key field value ->将哈希表key中的字段field的值设为value
12.hsetnx key field value ->只有在字段field不存在时,设置哈希表字段的值
13.hvals key ->获取哈希表中所有的值
14.hscan key cursor [match pattern] [count count] ->迭代哈希表中的键值对
List
底层实一个链表:可以添加在头部或尾部
注意:如果键不存在,创建新的链表。如果键存在,新增内容。如果值全移除,键也就消失
1.blpop key1 [key2] timeout ->移除并获取列表的第一个元素,如果列表没有元素会阻塞列表知道等待超时时或发现可弹出元素为止
2.brpop key1 [key2] timeout ->移除并获取列表的最后一个元素,如果列表没有元素会阻塞列表知道等待超时时或发现可弹出元素为止
3.brpoplpush source destination timeout ->从列表中弹出一个值,将弹出的元素插入到另一个列表中并返回它,如果列表没有元素会阻塞列表知道等待超时时或发现可弹出元素为止
4.lindex key index ->通过索引获取列表中的元素
5.linsert key befor/after pivot value ->在列表的元素前/后插入元素
6.llen key ->获取列表长度
7.lpop key ->移除并获取列表的第一个元素
8.lpush key value1 [value2] ->将一个或多个值插入到列表头
9.lpushx key value ->将一个或多个值插入到已存在的列表头部
10.lrange key start stop ->获取列表指定范围内的元素
11.lrem key count value ->移除count个列表元素value
12.lset key index value ->通过索引设置列表元素的值
13.ltrim key start stop ->对一个列表进行修剪(值保存指定区间的元素)
14.rpop key ->移除并获取列表最后一个元素
15.rpoplpush source destination ->移除列表最后一个元素,并将元素添加到另一个列表并返回
16.rpush key value1 [value2] ->在列表添加一个或多个值
17.rpushx key value ->为已存在的列表添加值
Set
是String类型的无序无重复集合,通过hashtable实现的
1.sadd key member1 [member2] ->向集合添加一个或多个成员
2.scard key ->获取集合的成员数
3.sdiff key1 [key2] ->返回给定所有集合的差集
4.sdiffstore destination key1 [key2] ->返回给定所有集合的差集并存储在destination中
5.sinter key1 [key2] ->返回给定所有集合的交集
6.sinterstore destination key1 [key2] ->返回给定所有就ihe的交集并存储在destination中
7.sismember key member ->判断member元素是否是集合key的成员
8.smembers key ->返回集合中的所有成员
9.smove source destination member ->将member元素从source集合中移动到destination集合
10.spop key ->移除并返回集合中的一个随机元素
11.srandmember key [count] ->返回集合中一个或多个随机数
12.srem key member1 [member2] ->移除集合中一个或多个成员
13.sunion key1 [key2] ->返回所有给定集合的并集
14.sunionstore destination key1 [key2] ->所有给定集合的并集存储在destination集合中
15.sscan key cursor [match pattern] [count count] ->迭代集合中的元素
Zset
有序集合:每个元素都会关联一个double类型的分数,来为数据从小到大排序.
1.zadd key score1 member1 [score2 member2] ->向集合添加一个或多个成员,或更新已存在的成员
2.zcard key ->获取集合的成员数
3.zcount key min max ->计算再集合中指定区间分数的成员数
4.zincrby key increment member ->再集合中堆指定成员的分数加上增量increment
5.zinterstore destination unmkeys key1 [key2] ->计算一个或多个集合得交集并将结果存储再新的集合key中
6.zlexcount key min max ->再集合中计算指定区间内得成员数量
7.zrange key start stop [withscores] ->通过索引区间返回集合指定区间内得成员
8.zrangebylex key min max [limit offset count] ->通过区间返回集合的成员
9.zrangebysocre key min max [withscores] [limit] ->通过分数返回集合指定区间内的成员
10.zrank key member ->返回集合中指定成员的索引
11.zrem key member [member...] ->移除集合中一个或多个成员
12.zremrangebylex key min max ->移除集合中给定字段区间的所有成员
13.zremrangebyrank key start stop ->移除集合中给定排名区间的所有成员
14.zremrangebyscore key min max ->移除集合中给定分数区间的所有成员
15.zrevrange key start stop [withscores] ->返回集合中指定区间内通缩索引分数从高到低
16.zrevrangebyscore key min max [withscores] ->返回集合中指定分数区间内的成员,分数从高到低排序
17.zrevrank key member ->返回集合中指定成员的排名,按分数值递减
18.zscore key member ->返回集合成员的分数
19.zunionstore destination numkeys key [key...] ->计算给定一个或多个集合的并集,并存储再新的key中
20.zscan key cursor [match pattern] [count count] ->迭代集合中的元素(包括元素成员和元素分值)