redis数据类型及常用命令

string(字符串)

string类型是redis的最基本数据类型,一个key对应value;string类型是二进制安全的,意思是 redis 的 string 可以包含任何数据。比如jpg图片或者序列化的对象;string类型的值最大能存储512MB

redis操作指令:

//添加
set $key $value 如 set name "张三"
//添加多个
mset $key $value $key $value....如 mset sex 23 sds ss
//获取
get $key 如 get name
//获取多个key的value值
mget $key 如 mget name name2
//数字递增
incr $key 如 incr num ,value值必须是整数
//递减
decr $key 如 decr num 
//指定key追加字符
append $key $value 如 append name ss ,成功会返回value值的长度
//获取key的value值长度
strlen $key 如 strlen name

hash(哈希,散列)

hash 是一个键值对集合,是字符串字段和字符串值之间的映射,因此它们是表示对象的完美数据类型(例如,具有多个字段的用户,如姓名,姓氏,年龄等)

//添加数据
hmset $key {$key $value ...} 如hmset user name 晓阳 sex 1
//获取数据
hget $key {$key} 如hget user name 获取user中的name的value值
//获取全部
hgetall $key 如hgetall user
//字段是否存在(存在返回1不存在返回0)
hexists $key {$key} 如 hexists user name
//增加字段
hsetnx $key {$key $value} 如 hsetnx user sge 18
//删除一个或多个字段
hdel $key {$key} 如 hdel user name age

list(列表)

list是字符串列表,按插入顺序排序。列表的最大长度为2的32次方 - 1个元素,从时间复杂度的角度来看,Redis列表的主要特征是支持在头部和尾部附近恒定时间插入和删除元素,即使有数百万个插入项目。访问元素在列表的极端附近非常快,但如果您尝试访问非常大的列表的中间,则速度很慢,因为它是O(N)操作。

//从左边或右边添加数据
lpush/rpush $key $value $value.. 如 lpush list1 sss
//获取列表长度
llen $key 
//取数据
lrange $key $start $stop 如 lrange list1 0 10
//从左或右删除并返回数据(可以用来做分布式消息队列)
lpop/rpop $key 如 lpop list1 删除并返回value值
//替换value
lset $key $row $value 如 lset list1 0 ss 

set(集合)

set是一个无序的字符串集合,集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1),与list不一样的是集合类型不能存在重复数据。

//添加set
sadd $key $value.. 如sadd set1 1 2 3
//删除set中的指定value值
srem $key $value 如srem set1 2
//比较俩个集合不同
sdiff $key $key 如 sdiff set1 set2 意思是set1存在set2不存在
//合并集合
sunion $key $key 如sunion set1 set2

zset(sorted set:有序集合)

zset 和 set 一样也是string类型元素的集合,且不允许重复的成员,不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序,zset的成员是唯一的,但分数(score)却可以重复。

//添加,score为分数
zadd $key $score $value 如zadd zset1 100 haha
//获取元素
zrange $key $start $end 如zrange zset1 0 2,获取前三个元素

如果两个元素的score是相同的话,那么根据(0<9

redis中的事务

MULTI 去开启事务,EXEC 去执行事务

如:

redis-test:0>MULTI
"OK"
redis-test:0>set string 222
"QUEUED"
redis-test:0>set ss ss
"QUEUED"
redis-test:0>EXEC
 1)  "OK"
 2)  "OK"

redis文档
我的博客

你可能感兴趣的:(redis数据类型及常用命令)