通用的常用命令
ttl key #查看key的过期时间,-1表示永不过期
exists key #查看是否存在key
move key db #将当前库的key移到db中去
expire key second #给key设置失效时间
type key #查看key数据类型
1.String字符串类型
string是redis最基本的类型,一个key对应一个value。
string类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象
string类型是Redis最基本的数据类型,一个redis中字符串value最多可以是512M。
常用命令:
set key value #设置string值
get key #获取值
del key [keys] #删除值,设置key或的keys
append key #在value后追加值
strlen key #获取key的value长度
getrange key start end #获取key的value, 从 start 到 end 位置的字符串,类似字符串截取
setrange key offset value # 从 offset 开始 插入value
setex key second value #设置key并设置失效时间second
setnx key value #当key不存在时设置key,否则不设置
mset/mget/msetnx #同时设置多个key-value
getset key value #先获取value在设置value
原子性操作: #value必须是整数
Incr key #key的value加一
decr key #key的value减一
incrby key increment #key的 value 加 increment 的数
decrby key increment #key的 value 加 increment 的数
2.List数据类型
List(列表)Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素导列表的头部(左边)或者尾部(右边)。它的底层实际是个链表。
left、right都可以插入添加;如果键不存在,创建新的链表;如果键已存在,新增内容;
如果值全移除,对应的键也就消失了。链表的操作无论是头和尾效率都极高,但假如是对中间元素进行操作,效率就很惨淡了。
lpush key value[values] #设置值,从左边插入链表,lpush key 1 2 3,链表是3 2 1
rpush key value[values] #设置值,从右边边插入链表,rpush key 1 2 3,链表是1 2 3
lrange key start stop #查询包含start到stop之间的数据, 0 -1是查询全部数据
lpop key #从链表左边取出一个value
rpop key #从链表右边边取出一个value
lindex key index #获取下标为index的value
llen key #查询长度
lrem key count value #删除列表中的count个value
ltrim key start stop #截取start到stop的集合并赋值给key
rpoplpush source destination #将source的底部元素移到destination的头部
lset key index value #设置key中下标为index的值
linsert key before/after pivot value #在privot值的前面或者后面插入一个新的value
3.Hash数据类型
Hash(哈希)
Redis hash 是一个键值对集合。同样是key-value形式的,但是value是键值对
Redis hash是一个string类型的field和value的映射表,hash特别适合用于存储对象。
类似Java里面的Map<String,Object>
hset/hmset/hsetnx key field value #设置值
hget/hmget/hgetall key field #获取值
hdel key fields #删除值
hlen key #获取长度
hexists key field #判断是否存在
hkeys key #获取全部fidld
hvals key #获取全部value
hincrby/hincrbyfloat key field incrment #增加整数或者浮点数
4.Set数据类型
Set(集合)
Redis的Set是string类型的无序集合。它是通过HashTable实现实现的。
sadd key members #设置值,members是字符串集合
smembers key #获取集合
sismember key member #判断是否有member
scard key #获取集合里的元素个数
srem key members #删除集合中的members
srandmember key count #随机返回key中的count个元素
spop key count #随机移出count个元素
smove source destination member #将source中的member移到destiation中去
sdiff keys #差集
sinter keys #交集
sunion keys #并集
5.Zset数据类型
zset(sorted set:有序集合)
Redis zset 和 set 一样也是string类型元素的集合,且不允许重复的成员。
不同的是每个元素都会关联一个double类型的分数。
redis正是通过分数来为集合中的成员进行从小到大的排序。zset的成员是唯一的,但分数(score)却可以重复。