频道栏目
首页 > 资讯 > 其他综合 > 正文

redis的数据类型综合讲解

17-12-28        来源:[db:作者]  
收藏   我要投稿

string

string是最简单的类型,一个 key对应一个Value,String类型是二进制安全的。Redis的 string可以包含任何数据,比如jpg图片或者序列化的对象。

set 
#设置键值:
#语法:set  键名  值
#注意:如果键名已经存在,则会覆盖原来的值

get
#获取键值
#语法:get 键名

setnx 
#设置键值,
#语法:setnx  键名 值
#注意:在设置键值时,如果键名已经存在,则设置不成功

setex 
#设置键值
#语法:setex  键名 有效期 值
#在设置键值时,设置一个有效期

mset 
#一次性可以设置多个键值
#语法:mset 键名1  值1  键名2 值2 ……………

msetnx 
#一次性设置多个键值,要判断如果键名已经存在,则设置失败。
#语法:msetnx 键名1  值1  键名2 值2……………

getset 
#返回旧值,设置新值
#语法:getset 键名  新值

strlen 
#返回值的长度
#语法: strlen 键名

getrange 
#获取键值的子内容
#语法:getrange  键名 开始位置  结束位置
#注意:位置是从开始计算的。

mget 
#一次获取多个键值。
#语法:mget 键名1 键名2

incr 
#自增操作,每执行一次自动加1
#语法:incr 键名

incrby 
#可以加指定值,返回计算后的值。
#语法:incrby 键名  加的值

decr 
#同incr一样, 自减操作。
#语法:decr 键名

decrby 
#指定减去的值。
#语法:decrby  键名  减的值

append 
#追加字符串
#语法:append 键名 追加的内容

hash

Redis hash是一个string类型的field和value的映射表。它的添加、删除操作都是0(1)(平均)。hash特别适合用于存储对象。相较于将对象的每个字段存成单个string类型。将一个对象存储在hash类型中会占用更少的内存,并且可以更方便的存取整个对象

hset 
#设置哈希键值
#语法:hset key(哈希的名称)  field   value

hget 
#获取哈希的内容
#语法:hget key(哈希的名称)   field
#注意:如果哈希的field已经存在,则会覆盖

hsetnx 
#在设置哈希的 field 时,要检测field是否存在,如果存在则设置不成功
#语法:hsetnx  key(哈希的名称)   field1  field2...

hmset 
#一次性可以设置多个哈希的field,value
#语法:hmset key(哈希的名称)   field1  value1  field1 value2

hmget 
#一次性可以获取哈希的多个 field 的值。
#语法: hmget   key(哈希的名称)   field1  field2

hincrby 
#设置哈希里面  field的值加指定的数值。
#语法:hincrby    key(哈希的名称)  field  number(加的数值)

hexists 
#测试哈希里面field是否存在,
#语法: hexists key(哈希的名称)  field

hdel 
#删除哈希里面的field的内容
#语法: hdel  key(哈希的名称)  field

hkeys 
#返回哈希里面所有的field
#语法:hkeys  key(哈希的名称)

hvals 
#返回哈希里面所有的field的值。
#语法: hvals key(哈希的名称)

hgetall 
#返回哈希里面所有的 field和value
#语法: hgetall key(哈希的名称)

lists

list是一个链表结构,主要功能是push、pop、获取一个范围的所有值等等,操作中key 理解为链表的名字。redis的list类型其实就是一个每个子元素都是string 类型的双向链表。我们可以通过push、pop操作从链表的头部或者尾部添加删除元素,这样list即可以作为栈,又可以作为队列。

lpush 
#从头部向链表里面添加数据(字符串类型)
#语法:lpush  key

lrange 
#取出链表里面的元素
#语法:lrange   key  开始位置  结束位置
#取出链表里面的全部内容:
#lrange key  0   -1

rpush 
#从尾部向链表里面添加数据(字符串类型)
#语法:rpush key

linsert 
#在链表里指定的位置添加元素。
#语法:linsert  key before exit_field new_field

lset 
#修改链表里面的元素内容
#语法:lset  key  元素的位置(从0开始) 新的值

ltrim 
#保留链表中指定范围的元素
#语法:ltrim key  开始位置  结束位置

lpop 
#从头部删除链表中的元素,返回删除的元素
#语法:lpop  key

rpop 
#从尾部删除链表中的元素,返回删除的元素
#语法:rpop  key

lindex 
#返回指定位置的元素
#语法:lindex key 位置

llen 
#返回链表中元素的个数
#语法:llen  key

set

set是集合,和我们数学中的集合概念相似,对集合的操作有添加删除元素,有对多个集合求交并差等操作。操作中key理解为集合的名字。

sadd 
#向集合里面添加元素
#语法: sadd  key(集合的名称)  元素1  元素2 

smembers 
#获取集合里面的元素
#语法:smembers 集合1

srem 
#删除集合里面指定元素
#语法:srem 集合1 指定的元素

spop 
#随机删除集合里面某个元素,返回该元素
#语法:spop 集合1

sdiff 
#求集合里面的差集,第一个集合里面不存在于另外集合里面的元素。
#语法:sdiff 集合1  集合2  

sdiffstore 
#求集合里面的差集即(第一个集合里面不存在于另外集合里面的元素)并保存到新的集合里面。
#语法:sdiffstore  新的集合  集合1   集合2

sinter
#返回集合交集,即在集合1和集合2都存在的元素。
#语法:sinter 集合1  集合2  

sinterstore 
#返回集合交集,即在集合1和集合2都存在的元素。取出交集并存储到新的集合。
#语法:sinterstore 新的集合  集合1  集合2

sunion 
#返回集合的并集,即多个集合里面的全部元素
#语法:sunion 集合1  集合2

sunionstore 
#求得并集并存储到新的集合
#语法:sunionstore  新的集合  集合1  集合2

smove
#把元素从第一个集合里面移动到另外的集合里面
#语法:smove  集合1  集合2  移动的元素

scard 
#返回集合中元素的个数
#语法:scard 集合1

sismember 
#检测某个元素是否在集合中
#语法:sismember 集合1 元素

srandmember 
#随机返回集合里面的某个元素,但是并不是删除。
#语法:srandmember  集合1 元素

sorted sets

sorted set是set的一个升级版本,他在set的基础上增加了一个顺序属性,这一属性在添加修改元素的时候可以指定,每次指定后,zset会自动重新按新的值调整顺序。可以理解为有两列的mysql表,一列存value,一列存顺序。操作中的key理解为zset的名字

zadd 
#向有序集合里面添加元素
#语法:zadd key(有序集合名称)  score1  元素1  score2  元素2……

zrange 
#查看集合里面的内容,按照元素的序号,升序来显示的。
#语法:zrange  key  开始下标  结束下标  [withscores]

zrem 
#删除集合中指定的元素
#语法:zrem key 指定的元素

zrank 
#在集合中,返回指定元素的下标。(安装元素的序号升序)
#语法:zrank  key 指定的元素

zrevrank 
#在集合中,返回指定元素的下标。(按照元素的序号降序)
#语法:zrevrank  key 指定的元素

zrevrange 
#查看集合里面的内容,按照元素的序号,降来显示的。
#语法:zrevrange   key 指定的元素

zrangebyscore 
#返回集合中,根据序号的范围返回元素。
#语法:zrangebyscore  key  开始序号  结束序号

zcount 
#返回集合中,指定序号范围 内的元素的个数
#语法:zcount key  开始序号 结束序号

zcard 
#返回集合中元素的个数
#语法:zcard key

zremrangebyrank 
#删除集合中,指定下标范围内容的元素。
#语法:zremrangebyrank  key  开始下标  结束下标

zremrangebyscore 
#删除集合中,指定序号范围内的元素。
#语法:zremrangebyscore key 开始序号 结束序号

redis 的其他常用命令

keys
#查看当前数据库下面的键,一般要结合通配符使用
#比如查看当前数据下面的所有键使用keys   *

exists
#查看某个键是否在当前数据里面。

del
#删除当前数据库下面的指定键
#语法:del key1 key2 key3

expire
#给一个键设置有效期,单位是秒
#语法:expire key 秒数

select
#选择数据库,在redis里面默认有16个数据库,编号是从0到15,默认是在0号数据库里面
#语法:select  数据库编号

move
#将当前数据库中的key转移到其他数据库中
#语法:move key  数据库编号

persist
#把key的有效期设置为永久有效,和expire命令对应
#语法:persist key 

randomkey
#随机返回一个键

type
#返回键的数据类型。
#语法:type key 

dbsize
#返回当前数据库键的个数

info
#查看redis服务器的一些信息

flushdb
#删除当前选择数据库中的所有key

flushall
#删除所有数据库中的所有key
相关TAG标签
上一篇:再见理想 | 2012年到2017年冬,信息安全渐行渐远 | 关注黑客与极客
下一篇:闪付卡(QuickPass)隐私泄露原理 | 关注黑客与极客
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站