redis中所有单个命令的执行都是原子性的,但是不保证多个命令间的原子性。
Redis的多数据库
在redis中一个redis实例提供了多个用来存储数据的字典(又称数据库),客户端可以指定将数据存储在哪个字典中。redis默认支持16个数据库,数据库命名从0开始递增。
Redis基本命令
介绍基本命令之前我们先来看下redis中常用的通配符。
KEYS命令
查询符合匹配规则的键,但是keys命令需要遍历所有的键,当键较多时会影响性能,不建议在生成环境中使用。
EXISTS命令
判断一个键是否存在,存在返回1,否则返回0。
DEL命令
删除一个或多个键,返回值时删除的键的个数。
TYPE命令
获得键值的数据类型。
HELP命令
查询其它命令。
Redis数据类型
字符串类型
能够存储任何形式的字符串,一个字符串类型键允许存储的数据的最大容量为512MB。字符串类型时其它四种数据类型的基础。
常用命令
set key value:设置键值对
get key: 获取指定键的值,不存在返回空
incr key:递增指定键的值,指定键的值必须是整数否则会报错
incrby key increment:指定的键增加increment
decr key:递减指定键的值
decrby key decrement:指定的键减小decrement
append key value:向指定键尾部追加值
strlen key:获取指定键的值的长度
mget key、mset key value:获取、设置多个键值
散列类型
散列类型(hash)的键值也是一种字典结构,存储了字段(field)和字段值的映射,字段值只能是字符串,不支持其他数据类型嵌套。一个散列类型键可以包含至多2^32 - 1(大约42亿)个字段,散列类型有散列组成。
常用命令
hset key field value:设置field-value键值对
hget key field:获取指定field字段的值
hmset / hmget key field value:批量设置/获取field-value
hgetall key:获得key键下所有的field-value
hexits key field:判断字段是否存在
hset key field:只有当field字段不存在时才会赋值
hincrby key field increment:给指定字段的值加increment
hdel key field:删除指定字段
hkeys key / hvals key:获取所有字段名 / 字段值
hlen key:获取字段数量
列表类型
列表类型(list)存储一个有序的字符串列表,列表类型内部是由一个双向链表实现的。**借助列表类型,redis还可以作为队列或者栈使用。**由于列表类型是基于双向链表实现的,所有访问链表两端的数据效率高,当时当数据很多时访问中间的元素效率不高。
常用命令
lpush / rpush key value:向列表左边 / 右边添加元素,支持一次性添加多个数据
lpop / rpop key:从列表左边 / 右边取出元素,同时将列表中的数据一处,并返回被移除的值
llen key:获取列表的长度,redis有记录列表的长度,无需获取时遍历列表
lrange key start stop:获取列表的子列表,包含两端的元素
lrem key count value:删除列表中指定的值,count表示要删除值为value的元素的个数,count.>0表示从左边开始,count<0表示从右边开始,count=0表示删除所有的
lindex key index:获得指定索引的值
lset key index value:设置指定索引的值
ltrim key start end:只保留指定范围列表的值
linsert key before | after pivot value:在列表中pivot元素前或后插入元素
rpoplpush source destination:从列表右边弹出一个元素到指定列表中(将元素从一个列表转移到另一个列表)
集合类型
一个集合类型(set)键可以存储至多2^32 - 1(大约42亿)个字符串,集合类型是无序性、唯一性的,适合需要单独添加或删除的场景。
常用命令
sadd key meumber:添加元素,支持添加多个元素
srem key member:删除元素,支持删除多个元素
smembers key:获取集合中所有的元素
sismember key member:判断集合中元素是否存在
sdiff setA setB:求多个集合的差集
sinter setA setB:求多个集合的交集
sunion setA setB:求多个集合的并集
scard key:获得集合中元素的个数
sdiffstore / sinterstore / sunionstore destination key:进行集合运算并将结果存储到目的集合<