Redis的单机安装和5中数据结构的常用命令
2017-11-27 23:25
525 查看
一、单机安装
1、官网下载tar安装包,如redis-4.0.2.tar.gz2、解压源码包:tar -zxvf redis-4.0.2.tar.gz
3、cd 到解压的目录下: 编译:make redis-4.0.2 编译测试:make test
4、make install PREFIX=/data/redis (将redis安装到prefix目录下)
5、将源码包中的redis.conf复制到安装路程(prefix)下 ,可以将配置修改为 daemonize = yes(是否后台启动),默认不能使用外网等访问,即bind配置。。。
6、启动redis服务: 在安装的bin目录下执行: ./redis-server ../redis.conf
7、启用客户端(同样在bin文件夹下): ./redis-cli -h 127.0.0.1 -p 6379 关闭客户端: ./redis-cli shutdowm
二、五种数据结构的常用命令
1、字符类型(String)
1)、set
set key value 设置一个字符串,若已经存在key值则进行覆盖,无视数据类型,如: set hello world2)、get
get key 获取key值对应的value值,若key值不存在则返回nil,若key值不为字符串则返回一个错误,如:get hello 将返回world3)、setnx
setnx key value 若key值不存在则设置键值对,若存在不做任何操作。4)、setex
setnx key seconds value 设置key对应的value值并设置对应超时毫秒值,若key已经存在也会进行覆盖操作,该命令类似于以下两个命令组合:set key value expire key seconds
5)、psetex
psetnx key milliseconds value 与setex相同,只是设置时间为毫秒值6)、mget
mget key [key ... ] 获取多个key对于的value ,若某位置上key不存在则对于返回nil7)、setrange
setrange key offset vlaue8)、getrange
getrang key start end 获取key对应的字符串的start end偏移量子字符串,当-1表示最后一位,-2表示倒数第二位9)、mset
mset key value [key vlaue ... ] 同时设置多个键值对,若key存在则进行覆盖操作,并且该操作为原子操作, 所有数据将在同一时间进行设置。10)、msetnx
msetnx key value[key value ... ] 当且仅当所有的key都不存在才设置多个键值对,并且为原子操作11)、append
append key value 将value值增加到原有key对于的值后,若key不存在则相当于set key value操作12)、setget
setget key value 覆盖设置key 为vlaue,并将原vlaue进行返回。可以存在但不是字符串则返回一个错误13)、strlen
strlen 获取key对应的value字符串的长度,若value不是字符串则返回一个错误14)、incr
incr key 将key对应的value值++操作,若没有key存在,则先设置为0再进行++操作,若key对应的value不是string类型则返回一个错误15)、decr
decr key 与incr相反执行减一操作16)、incrby
incrby key increment 对key执行加increment数量操作,若key不存在则先将其设置为0再执行加操作,若key对应的value不是string类型则返回一个错误17)、decrby
decrby key decrement 与incrby操作相反,执行将去decrement操作2、散列类型(Hash相当于java的对象)
1)、hset
hset key field value 将key域中的field设置为value,如 hset user:1 name kevin(将id为1的user对象的name设置为kevin),若key不存在则会在哈希表中一个新的hash表被 创建,若哈希表中的field字段已经存在则覆盖field对应的值并返回0.否则返回12)、hget
hget key field 获取key的哈希表的field对应的value值,若key或者field不存在则返回nil3)、hmset
hmset key field value[field value ... ] 同时设置多个key哈希表的值,若key不存在则先创建一个哈希表,若key对应的类型不是哈希则返回一个错误,否则返回OK4)、hmget
hmget key field [field] 同时获取key哈希表中多个field 对应的vlaue值,若某一位置上field不存在则对于返回nil,key的哈希表不存在则总体返回nil5)、hsetnx
hsetnx key field value 若key哈希表不存在则创建一个,当且仅当key的哈希表中,field不存在时设置对于的value值,否则没有任何操作6)、hgetall
hgetall key 获取key哈希表中所以的field value值,会以field0 value0 field1 vlaue1 的形式返回,长度为2倍,若key哈希表不存在返回empty list or set7)、hdel
hdel key field 删除key哈希表中field对于的vlaue值,key 或者 field不存在则忽略,返回成功操作的个数8)、hlen
hlen key 返回key哈希表中域的个数(即key的个数)9)、hexists
hexists key field 查看哈希表key中,field域是否存在,若key或者field不存在则返回0,否则返回110)、hincrby
hincrby key field increment 对哈希表key的field域的值执行加上整数increment操作,increment可以为负数表示减去。key哈希表不存在则创建,field域不存在则创建并赋 值为0,再进行加上或者减去操作。11)、hincrbyfloat
hincrbyfloat key field increment 与hincrbyfloat相同,只是将整数换成小数12)、hkeys
hkeys key 获取key哈希表中所有的域13)、hvals
hvals key 获取key哈希表中所有的域对应的值3、列表类型(List)
1)、lpush
lpush key value [value ... ] 将一个或多个值按照顺序插入到名为key的列表的头部,由于是原子操作,所以是按照顺序插入,若key不存在则先创建一个空的有序队列。2)、rpush
rpush key value [value ... ] 将一个或多个值按照顺序插入到名为key的列表尾部,由于是原子操作,所以是按照顺序插入到尾部,若key不存在则先创建一个空的有序队列3)、lpushx
lpushx key value 当且仅当一个名叫key的有序队列不存在时,创建一个空的有序队列并将value插入key有序队列的头部,并返回列表长度4)、rpushx
rpushx key value 当且仅当一个名叫key的有序队列不存在时,创建一个空的有序队列并将vlaue插入key有序队列的尾部,并返回列表长度5)、lpop
lpop key 删除名叫key的有序队列的头一个元素,并返回该元素,若不存在则返回nil6)、rpop
rpop key 删除名叫key的有序队列的尾部一个元素,并返回该元素,若不存在则返回nil7)、blpop
blpop key [key ... ] timeout 在超时时间内,阻塞的获取一个或多个名称列表的list的第一个元素,若前一个key不存在则在下一个key中获取。若在超时时间内没有获取到值(或不存在这样的值4000
)则返回 nil和查找的时间,否则返回列表名称和其值组成的一个list
8)、brpop
brpop key [key ... ] timeout 在超时时间内,阻塞的获取一个或多个名称列表的list的最后一个元素,若前一个key不存在则在下一个key中获取。若在超时时间内没有获取到 值(或不存在这样的值)则返回 nil和查找的时间,否则返回列表名称和其值组成的一个list9)、llen
llen key 获取名为key为的有序集合的个数,若key不存在则返回0(标识一个空集合),若key的类型不为有序集合则返回一个错误10)、lrange
lrange key start end 获取名为key的有序集合的start到end对应的子集合,-1表示最后一个数,-2表示倒数第二个数。若下标区间超出范围不会报错,只会返回一个空集合11)、lrem
lrem key count value count大于0表示从左到有查找并删除count的绝对值个和value相同值的元素,count小于0表示从右向左。返回删除的元素个数,若key不存在也返回012)、lset
lset key index value 为名为key有序集合下标为index的元素设置vlaue键值,若key不存在或下标越界返回一个错误13)、ltrim
ltrim key start stop 为名为key的有序集合重新赋值为其start end下标区间的子集,-1表示最后一位,-2表示倒数第二位,若key不存在报错14)、lindex
lindex key index 获取名为key的有序集合的下标为index的元素,-1表示最后一位,-2表示倒数第二位,若key不存在报错15)、linsert
linsert key BEFORE | AFTER pivot vlaue 将值value的插入到有序集合key的值为pivot的元素的前或后,若key不存在报错,若没有值为pivot则不做任何操作16)、rpoplpush
rpoplpush source destination 将有序集合source的最后一个元素移除并插入到destination有序集合的第一个元素之前,若source不存在则获取值为nil并且不做任何操作17)brpoplpush
brpoplpush为rpoplpush的阻塞操作4、集合类型(Set)
1)、sadd
sadd key mumber [mumber ... ] 将一个或多个member元素添加到名为key的set无序集合中,若key不存在则先创建一个空的无序集合再添加,若已存在key不是集合则报错2)、srem
key member [member ... ] 从名叫key的无序集合中移除一个或多个元素,若key不是集合则报错。返回被移除的元素的个数。3)、smembers
smembers key 获取名为无序集合的所有元素,若key不存在则返回一个空的集合4)、sismember
sismember key member 查看名叫key的集合中是否存在member的元素,若存在返回1否则返回05)、scard
scard key 获取集合key的元素个数, 若key不存在也返回06)、smove
smove source destination member 将member元素从source集合中移除并添加到destination集合中,若两个集合之一不存在是报错,若两个集合中不是都存在member元 素则不执行任何操作,若destination中已存在member则只是删除source中的member,返回被操作的元素的个数7)、spop
spop key 从key的集合中随机删除一个元素并返回该元素,若key不存在或为空集合则返回nil,8)、srandmember
srandmember key [count] 从集合key中获取count个随机元素,只是与spop不同的是不会对集合进行删除操作9)、sinter
sinter key [key ... ] 获取多个集合的交集,若只有一个集合则返回该集合的全部元素,若某一集合为空则交集也为空10)、sinterstore
sinterstore destination key [key ... ] 获取一个或多个集合的交集(这与sinter一样),并将结果报错到名为destination的集合中,若已存在则进行覆盖操作,当然也可以是 key之一,并且返回集合的成员个数11)、sunion
sunion key [key ... ] 获取多个集合的并集,并返回其所有成员12)、sunionstore
sunionstore destination key [key ... ] 获取多个集合的并集并将其存储到destination中,若已存在则进行覆盖操作,当然也可以是key之一,并返回该集合的元素数量13)、sdiff
sdiff key [key ... ] 获取多个集合的差集,若某集合不存在则认为是空集,并返回该集合的成员14)、sdiffstore
sdiffstore destination key [key ... ] 获取多个集合的差集,若某key集合不存在则认为是空集合。并将差集存储到destination的集合中,若已存在进行覆盖操作,当然destination也可以是key之一。返回差集集合的元素个数。5、有序集合(Sorted Set)
1)、zadd
zadd key score member[score member ... ] 添加一个或多个元素到有序集合key中,score可以是整数或浮点数。若key不存在则先创建一个空的有序集合,若key已存在但是不是集合类型则报错。若member在key集合中已经存在则改正其score的值,并在将其充值在正确的序列位置上。2)、zrem
zrem key member [member ... ] 从有序集合key中移除一个或多个member成员,若member成员不存在则忽略,当且仅当key存在但不是集合类型时报错,并且返回被移除成员的个数。3)、zcard
zcard key 获取有序集合key的成员个数,若key不存在则返回0,当且仅当key存在但不是集合类型时报错。4)、zcount
zcount key min max 获取有序集合key中,score在min和max之间(并且包含着两个值的元素)的member的个数。5)、zscore
zscore key member 获取key有序集合中member的score值,但是返回的score值为string,若key集合不存在或member不在集合key中时返回nil6)、zincrby
zincrby key increment member 为key的有序集合的member元素的score增加increment(值为负数表示减去)的值,若key存在但不是集合类型保存。若key不存在则创建一个或空的有序集合。若member不存在则该命令相当于zadd key increment member , 最终返回该member的最后的score(string类型)值。7)、zrang
zrang key start stop [WITHSCORES] 获取key有序集合的从start到stop区间范围内的member元素,0标识第一位,-1表示倒数第一位,下标越界等不会报错。返回的成员按照score由低到高排序,score相同则按照字典排序。 若需要返回成员的score值则需要使用WITHSCORES 。8)、zrevrang
zrevrang key start stop [WITHSCORES] 除了返回按照score倒序排列其他的都与zrang一致。9)、zrangbyscore
zrangbyscore key min max [WITHSCORES] [LIMIT offset count] 按照分数区间(包含边界值)获取有序集合key中的元素。返回的成员按照score由低到高排序,score相同则按照字典排序。min max可以使用-inf +inf 表示获取从最小值到最大值的全部数据。
WITHSCORES 则要求member成员的得分一并返回
LIMIT offset count 类似于mysql的分页参数形式
10)、zrevrangbyscore
zrevrangbyscore 除了返回按照score倒序排列其他的都与zrevrangbyscore一致。11)、zrank
zrank key member 按照score由小到大进行排序,返回member在key有序集合中按照score的排行数。12)、 zrevrank
zrank key member 按照score由大到小进行排序,返回member在key有序集合中按照score的排行数。13)、zinterstore
zinterstore destination numkeys key [key ... ] [WEIGHT weight [weight ... ] ] [AGGREGATE SUM|MIN|MAX ]获取一个或多个有序集合的交集并将其存储到destination集合中,但是需要在numkeys上指定key集合的个数。
默认情况下destination中某个member的score为原来个key中的各score的和。
weight为需要与每个score值相乘的数,默认为1所以值取决于AGGREGATE(聚合函数),默认SUM即destination中某个menber的score值由所有原集合的对应score之和,当然可以使用AGGREGATE指定取最大值或最小值。
14)、zunionstore
zunion destination numkeys key [key ... ] [WEIGHT weight [weight ... ] ] [AGGREGATE SUM | MIN | MAX ] 取交集再存储,其他与zinterstore一致15)、zremrangebyrank
zremrangebyrank key start stop 将key有序集合中score排行在start 到stop区间内的成员移除。16)、zremrangebyscore
sremrangescore key min max 将key有序集合中score在min 到max 区间内的成员移除。相关文章推荐
- Redis的介绍和常用数据类型结构命令的总结
- Redis的五种存储数据结构和常用命令
- Redis Hash类型数据常用命令总结
- Redis总结笔记(一):安装和常用命令
- Redis总结笔记(一):安装和常用命令
- Redis简介、与memcached比较、存储方式、应用场景、生产经验教训、安全设置、key的建议、安装和常用数据类型介绍、ServiceStack.Redis使用(1)
- [置顶] Redis String类型数据常用的16条命令总结
- Redis常用数据类型介绍、使用场景及其操作命令
- redis基本数据类型和常用命令操作
- linux问题-Redis的安装以及常用命令
- linux下redis安装配置及redis常用命令
- Oracle: 一、Oracle简介,安装,基本使用,建表增删改查,数据类型及常用命令
- Redis常用数据类型介绍、使用场景及其操作命令
- Redis笔记,安装和常用命令
- matlab基本操作 关键字 特殊变量 常用命令 数据结构
- Redis总结笔记(一):安装和常用命令
- Redis常用数据类型介绍、使用场景及其操作命令
- Redis Set类型数据常用命令参考
- CentOS6.5下redis安装部署配置指南、常用命令、主从同步集群、redis-php学习资料整合详解
- linux下redis安装配置及redis常用命令