Redis为什么这么快
(一)纯内存操作
(二)单线程操作,避免了频繁的上下文切换
(三)采用了非阻塞I/O多路复用机制
连接
redis-cli -h host -p port -a password
键(keys)
Redis 键命令用于管理 redis 的键。
删除:del key1 key2 …
序列化:dump key
检查是否存在:exists key
设置过期时间:expire key seconds
查找符合给定模式的key:keys patten (如keys pqd*,查找以pqd开头的key)
移动到给定的db:move key db (move pqd 1)
移除过期时间:persist key
返回剩余过期时间:pttl key (毫秒)
ttl key (秒)
随机返回一个key:randomkey
修改key的名称:rename key newkey
返回key存储的类型:type key
返回所有key:keys *
字符串(String)
Redis 字符串数据类型的相关命令用于管理 redis 字符串值,基本语法如下:
设置key的值:set key value
获取key的值:get key
获取key的部分长度的值:getrange key start end
下标从0开始,当end用-1表示时,则读取全部
获取一个或者多个key的值:mget key1 key2 key3 …
当key不存在时设置key的值:setnx key value
返回key值的长度:strlen key
同时设置一个或多个key的值:mset key1 value key2 value …
添加值到字符串末尾:append key value
哈希(hash)
Redis hash 是一个string类型的field和value的映射表,hash特别适合用于存储对象。
Redis 中每个 hash 可以存储 232 - 1 键值对(40多亿)
添加:hmset keyname filed1 value filed2 value filed value3 …
删除一个或多个字段:hdel key filed1 filed2 …
查看字段是否存在:hexists key filed
获取指定字段的值:hget key filed
获取指定key的所有字段和值:hgetall key
指定字段的数值加上增量:
浮点型:hincrbyfloat key filed increment
整数值:hincrby key filed increment
获取所有字段:hkeys key
获取字段的数量:hlen key
获取所有给定字段的值:hmget key filed1 filed2 …
同时将多个filed-value设置到key中:hmset key filed1 value filed2 value …
设置特定字段值:hset key filed value
获取hash表中所有值:hvals key
集合(list)
Redis列表是简单的字符串列表,按照插入顺序排序。可以添加一个元素到列表的头部(左边)或者尾部(右边)
一个列表最多可以包含 232 - 1 个元素 (4294967295, 每个列表超过40亿个元素)。
添加:lpush key value
移除并获取第一个元素,没有元素则会阻塞列表直到超时
blpop key timeout
通过索引获取元素:lindex key index
在列表前后插入元素,位于值 pivot 之前或之后:linsert key before|after pivot value
获取列表长度:llen key
移出并获取第一个元素:lpop key
将一个或多个值插入到列表头部:lpush key value1 value2 …
获取指定范围内的元素:lrange key start end
移除列表元素:lrem key count value
通过索引设置值:lset key index value
对列表进行修剪,只保留指定区间内的元素:ltrim key start end
移除并获取最后一个元素:rpop key
为已存在的列表添加值:rpushx key value
发布订阅
Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。
Redis 客户端可以订阅任意数量的频道
连接
验证密码是否正确:auth password
打印字符串:echo mesage
查看服务是否运行:ping (正常则返回pong)
关闭连接:quit
切换数据库:select dbnumber (默认使用0号数据库,一共有16个)