Redis学习笔记——数据类型及操作
2017-06-17 19:35
302 查看
数据操作
redis是key-value的数据,所以每个数据都是一个键值对键的类型是字符串
值的类型分为五种:
字符串string
哈希hash
列表list
集合set
有序集合zset
数据操作的全部命令,可以查看http://redis.cn/commands.html
接下来逐个介绍操作各类型的命令
string
string是redis最基本的类型最大能存储512MB数据
string类型是二进制安全的,即可以为任何数据,比如数字、图片、序列化对象等
命令
设置
设置键值set key value
设置键值及过期时间,以秒为单位
SETEX key seconds value
设置多个键值
MSET key value [key value ...]
获取
根据键获取值,如果不存在此键则返回nilGET key
根据多个键获取多个值
MGET key [key ...]
运算
要求:值是数字将key对应的value加1
INCR key
将key对应的value加整数
INCRBY key increment
将key对应的value减1
DECR key
将key对应的value减整数
DECRBY key decrement
其它
追加值APPEND key value
获取值长度
STRLEN key
键的命令
查找键,参数支持正则KEYS pattern
判断键是否存在,如果存在返回1,不存在返回0
EXISTS key [key ...]
查看键对应的value的类型
TYPE key
删除键及对应的值
DEL key [key ...]
设置过期时间,以秒为单位
创建时没有设置过期时间则一直存在,直到使用使用DEL移除
EXPIRE key seconds
查看有效时间,以秒为单位
TTL key
hash
hash用于存储对象,对象的格式为键值对命令
设置
设置单个属性HSET key field value
设置多个属性
HMSET key field value [field value ...]
获取
获取一个属性的值HGET key field
获取多个属性的值
HMGET key field [field ...]
获取所有属性和值
HGETALL key
获取所有的属性
HKEYS key
返回包含属性的个数
HLEN key
获取所有值
HVALS key
其它
判断属性是否存在HEXISTS key field
删除属性及值
HDEL key field [field ...]
返回值的字符串长度
HSTRLEN key field
list
列表的元素类型为string按照插入顺序排序
在列表的头部或者尾部添加元素
命令
设置
在头部插入数据LPUSH key value [value ...]
在尾部插入数据
RPUSH key value [value ...]
在一个元素的前|后插入新元素
LINSERT key BEFORE|AFTER pivot value
设置指定索引的元素值
索引是基于0的下标
索引可以是负数,表示偏移量是从list尾部开始计数,如-1表示列表的最后一个元素
LSET key index value
获取
移除并且返回 key 对应的 list 的第一个元素LPOP key
移除并返回存于 key 的 list 的最后一个元素
RPOP key
返回存储在 key 的列表里指定范围内的元素
start 和 end 偏移量都是基于0的下标
偏移量也可以是负数,表示偏移量是从list尾部开始计数,如-1表示列表的最后一个元素
LRANGE key start stop
其它
裁剪列表,改为原集合的一个子集start 和 end 偏移量都是基于0的下标
偏移量也可以是负数,表示偏移量是从list尾部开始计数,如-1表示列表的最后一个元素
LTRIM key start stop
返回存储在 key 里的list的长度
LLEN key
返回列表里索引对应的元素
LINDEX key index
set
无序集合元素为string类型
元素具有唯一性,不重复
命令
设置
添加元素SADD key member [member ...]
获取
返回key集合所有的元素SMEMBERS key
返回集合元素个数
SCARD key
其它
求多个集合的交集SINTER key [key ...]
求某集合与其它集合的差集
SDIFF key [key ...]
求多个集合的合集
SUNION key [key ...]
判断元素是否在集合中
SISMEMBER key member
zset
sorted set,有序集合元素为string类型
元素具有唯一性,不重复
每个元素都会关联一个double类型的score,表示权重,通过权重将元素从小到大排序
元素的score可以相同
命令
设置
添加ZADD key score member [score member ...]
获取
返回指定范围内的元素ZRANGE key start stop
返回元素个数
ZCARD key
返回有序集key中,score值在min和max之间的成员
ZCOUNT key min max
返回有序集key中,成员member的score值
ZSCORE key member
发布订阅
发布者不是计划发送消息给特定的接收者(订阅者),而是发布的消息分到不同的频道,不需要知道什么样的订阅者订阅订阅者对一个或多个频道感兴趣,只需接收感兴趣的消息,不需要知道什么样的发布者发布的
发布者和订阅者的解耦合可以带来更大的扩展性和更加动态的网络拓扑
客户端发到频道的消息,将会被推送到所有订阅此频道的客户端
客户端不需要主动去获取消息,只需要订阅频道,这个频道的内容就会被推送过来
消息的格式
推送消息的格式包含三部分part1:消息类型,包含三种类型
subscribe,表示订阅成功
unsubscribe,表示取消订阅成功
message,表示其它终端发布消息
如果第一部分的值为subscribe,则第二部分是频道,第三部分是现在订阅的频道的数量
如果第一部分的值为unsubscribe,则第二部分是频道,第三部分是现在订阅的频道的数量,如果为0则表示当前没有订阅任何频道,当在Pub/Sub以外状态,客户端可以发出任何redis命令
如果第一部分的值为message,则第二部分是来源频道的名称,第三部分是消息的内容
命令
订阅SUBSCRIBE 频道名称 [频道名称 ...]
取消订阅
如果不写参数,表示取消所有订阅
UNSUBSCRIBE 频道名称 [频道名称 ...]
发布
PUBLISH 频道 消息
示例
开启两个客户端,一个订阅,一个发布。相关文章推荐
- VC++常用数据类型及其操作详解
- java语言操作Oracle数据库中的CLOB数据类型
- C#操作技巧之数据类型之间的转换
- VC++常用数据类型及其操作详解
- VC++常用数据类型及其操作详解(未完待续)
- VC++常用数据类型及其操作详解
- VC++常用数据类型及其操作详解
- 使用JDBC4.0操作XML类型的字段(保存获取xml数据)的方法
- C#操作技巧的数据类型之间的转换
- java语言操作Oracle数据库中的CLOB数据类型
- C#操作技巧的数据类型之间的转换
- VC++常用数据类型及其操作详解
- VC++常用数据类型及其操作详解
- VC++常用数据类型及其操作详解
- VC++常用数据类型及其操作详解[徐兆元]
- VC++常用数据类型及其操作详解
- java语言操作Oracle数据库中的CLOB数据类型
- C#中通过OleDb操作Oracle Blob数据类型
- VC++常用数据类型及其操作详解(
- 操作image类型数据