Redis基础——01基本数据类型(string、Hash、List、Set、sorted set)


1. String


set: 赋值

	set  key value   
	
	$redis->set('key','value')

setex: 赋值(带过期时间,单位s)

	setex key expire value  
	
	$redis->setex('key','expire','value')

setnx: key不存在才能赋值

	setnx key  value  

	$redis->setnx('key','value')

setrange: 从偏移位开始覆盖写

	setrange key offset value  

	$redis->setrange('key',offset,'value')

get: 获取值

	get key
	
	$redis->get('key')

getrange: 截取值

	getrange key start end  

	$redis->getrange('key',start, end)

mset: 同时设置多个key的值

	mset key1 value1   key2 value2 ...

	$redis->mSet(array('key0'=>'value0','key1'=>'value1'))

mget: 同时获取多个key的值

	mget key1 key2 key3 ...

	$redis->mGet(array('key0','key1'...))

incr: 递增1

	incr key

	$redis->incr('key')

incrby: 递增指定数字

	incrby key increment

	$redis->incrBy('key', number)

decr: 递减1

	decr key

	$redis->decr('key')

decrby: 递减指定数字

	decrby key decrement

	$redis->decrBy('key', number)

strlen: 获取值的长度

	strlen key

	$redis->strlen('key')

append: 向value后补追加值

	append key value

	$redis->append('key','value')




2. Hash

Redis hash 是一个string类型的field和value的映射表,hash特别适合用于存储对象


hset: 赋值

	hset key field value

	$redis->hSet(key, field, value)

hmset: 赋值多个字段

	hmset key field1 value1 field2 value2...

	$redis->hMset(key, array('field1'=>'value1', 'field2'=>'value2'))

hget: 获取值

	hget key field 

	$redis->hGet(key,  field)

hmget: 获取多个字段值

	hmget key field1 field2...

	$redis->hMget(key, array('field1''field2'))

hgetall: 获取所有字段的值

	hgetall key 

	$redis->hGetAll(key)

hexists: 判断字段是否存在

	hexists key field

	$redis->hExists(key, field)

hsetnx: 字段不存在时赋值

	hsetnx key field value

	$redis->hSetNx(key, field, value)

hincrby: 字段值递增指定数字

	hincrby key field increment

	$redis->hIncrBy(key, field, number)

hkeys: 获取全部字段名

	hkeys key

	$redis->hKeys(key)

hVals: 获取全部字段值

	hvals key

	$redis->hVals(key)




3. List

List数据结构是一个双向链表,它可以存储一个有序的字符串列表,可以从队列两端添加和弹出元素,适合做消息队列。


lpush: 从左端添加元素

	lpush key value

	$redis->lPush(key,value)

rpush: 从右端添加元素

	rpush key value

	$redis->rPush(key,value)

lpop: 从左端弹出元素

	lpop key 

	$redis->lPop(key)

rpop: 从右端弹出元素

	rpop key 

	$redis->rPop(key)

llen: 获取元素个数

	llen key 

	$redis->lSize(key)

lrange: 获取区间内的元素

	lrange key 

	$redis->lRange(key, start, end)

lrem: 移除数量为count的元素

count > 0 : 从表头开始向表尾搜索,移除与 VALUE 相等的元素,数量为 COUNT 。

count < 0 : 从表尾开始向表头搜索,移除与 VALUE 相等的元素,数量为 COUNT 的绝对值。

	lrem key 

	$redis->lRem(key, value, count)

lindex: 获取指定索引的元素值

	lindex key index

	$redis->lGet(key, index)

lset: 设置指定索引的元素值

	lset key index value

	$redis->lSet(key, index, value)

ltrim: 截取列表指定片段

	ltrim key start end

	$redis->lTrim(key, start, end)




4. Set

Redis 的 Set 是 String 类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。


sadd: 添加元素

	sadd key value1 value2...

	$redis->sAdd('key', 'value')

srem: 移除元素

	srem key value1 value2...

	$redis->sRem('key', 'value')

scard: 获取集合中的元素个数

	scard key

	$redis->sCard('key')

smembers: 获取集合中所有元素

	smembers key

	$redis->sMembers('key')

sismember: 判断元素是否在集合中

	sismember key value

	$redis->sIsMember('key', 'value')

srandmember: 随即获取指定个数元素

该操作和 SPOP 相似,但 SPOP 将随机元素从集合中移除并返回,

而 Srandmember 则仅仅返回随机元素,而不对集合进行任何改动。

	srandmember key count

	$redis->sRandMember('key', count)

sdiff: 对集合做差集运算

	sdiff key1 key2...

	$redis->sDiff('key1', 'key2'...)

例子:
求key1、key2的差集
其实就是求key1中,key2不包含的内容。
Redis基础——01基本数据类型(string、Hash、List、Set、sorted set)_第1张图片

sdiffstore: 对集合做差集运算,并把结果存到新集合

	sdiffstore newSet key1 key2...

	$redis->sDiffStore('output', 'key1', 'key2'...)

sinter: 对集合做交集运算

	sinter key1 key2...

	$redis->sInter('key1', 'key2'...)

sinterstore: 对集合做交集运算,并把结果存到新集合

	sinterstore newSet key1 key2...

	$redis->sInterStore('output', 'key1', 'key2'...)

sunion: 对集合做并集运算

	sunion key1 key2...

	$redis->sUnion('key1', 'key2'...)

sunionstore: 对集合做交并集运算,并把结果存到新集合

	sunionstore newSet key1 key2...

	$redis->sUnionStore('output', 'key1', 'key2'...)




5. Zset

Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复成员

不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序

有序集合的成员是唯一的,但分数(score)可以重复

适用场景:排行榜


zadd: 添加元素

	zadd key score1 value1 score2 value2...

	$redis->zAdd( 'key', score1 ,'val1'...)

zscore: 获取元素的分数

	zscore key value

	$redis->zScore( 'key','val1')

zrange: 获取从小到大排名在某范围内的元素

	zrange key start end [withscore]

	$redis->zRange( 'key', start, end, 'withscore')

zrevrange: 获取从大到小排名在某范围内的元素

	zrevrange key start end [withscore]

	$redis->zRevRange( 'key', start, end, 'withscore')

zrangebyscore: 获取指定分数区间的元素

	zrangebyscore key min max [withscore] [LIMIT offset count]

	$redis->zRangeByScore( 'key', start, end, array('withscores' => true, 'limit' => array(0, 3)))

zincrby: 增加某个元素的分数

	zincrby key increment value

	$redis->zIncrBy( 'key', increment,  'value')

zcard: 获取集合中元素的个数

	zcard key 

	$redis->zSize( 'key')

zcount: 获取指定分数范围内的元素个数

	zcount key min max

	$redis->zCount( 'key', start, end)

zrem: 删除一个或多个元素

	zcount key value1 value2...

	$redis->zDelete( 'key', value)

你可能感兴趣的:(redis)