###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