简单安装
- 安装gcc:
sudo apt-get install gcc
- 下载:
wget http://download.redis.io/releases/redis-3.2.3.tar.gz
- 解压:
tar xzf redis-3.2.3.tar.gz
- 压缩:
tar -cf Chain_20180117.tar Chain/
- 编译:
cd redis-3.2.3 make
- 将启动脚本放入init.d:
sudo cp utils/redis_init_script /etc/init.d/redis
- 配置文件:
直接运行utils/install_server.sh 或 cp /redis/redis.conf /etc/redis/6379.conf等
- service启动:
service redis start
- 检查是否启动:
ps aux | grep redis
基本命令
- 进入cli:
redis-cli
- 关闭:
redis-cli shutdown
- 选择数据库:
select db-index
- 清空数据库:
flushdb
- 将key从当前数据库移动到指定数据库:
move key db-index
- redis常见key形式(对象类型:对象id:对象属性):
set user:userid:9:username free
- 试指定key是否存在:
exists key
- 删除指定key:
del key1 key2 ....keyN
- 返回给定key的value类型:
type key
- 返回从当前数据库中随机选择的一个key:
randomkey
- 重命名key(renamenx如果newkey存在返回失败):
rename(renamenx) oldkey newkey
- 设置快照:
config set stop-writes-on-bgsave-error no
字符串(String)常用命令
- set 设置键值:
set key value
- get 获取键值:
get key
- incr(incrby, incrbyfloat) 自增1(n):
incr key (n)
- decr(decrby) 自减1(n):
desc key (n)
- append 在末尾追加值:
append key value
- getrange(substr) 获取子串:
getrange key start end
- setrange 修改子串:
setrange key start end value
- getbit 获取位移二进制值:
getbit key offset
列表(List)常用命令(可重复)
- rpush(lpush) 将一个[多个]值加入列表右(左)端:
rpush(lpush) key value [value ...]
- rpop(lpop) 移除并返回列表最右(左)端元素:
rpop(lpop) key
- lindex 返回偏移量offset元素:
lindex key offset
- lrange 返回一段元素(包含左右端):
lrange key start end
- ltrim 保留偏移量offset元素:
ltrim key start end
- blpop(阻塞) 从第一个非空列表中弹出最左端元素, 或在timeout秒之内阻塞并等待可弹出的元素出现:
blpop key [key ...] timeout
- rpoplpush(brpoplpush阻塞) 弹出key1中最右端元素放入key2最左端,返回这个元素(等待可弹出元素):
rpoplpush key2 key2
集合(Set)常用命令(不能重复)
- sadd(srem) 添加(移除)一个[多个]元素,返回原来元素数量:
sadd(rem) key value [value ...]
- sismember 检查key是否在集合中:
sismember key value
- scard 返回元素数量:
scard key
- smembers 返回所有元素(可使用sscan不会堵塞服务器):
smembers key
- srandmember 随机返回一个[多个]元素(count负数时可能会重复):
srandmember key [count]
- spop 随机移除一个元素,返回移除元素:
spop key
- smove 将key1中元素移入key2,成功返回1,失败返回0:
smove key1 key2 value
- sdiff(sdiffstore) 返回key1存在key2不存在的元素(存入key2):
sdiff key2 key1 [key1 ...]
- sinter(sinterstore) 返回key2key2相同元素(存入key2):
sinter(sinterstore) key2 key1 [key1 ...]
- sunion(sunionstore) 返回至少一个集合存在的元素(存入key2):
sunion(sunionstore) key2 key1 [key1 ...]
散列(Hash)常用命令
- hmget 获取一个[多个]值:
hmget key keyname [keyname ...]
- hmset 设置键值:
hmset key keyname keyvalue [keyname keyvalue ...]
- hdel 删除键值,返回成功删除数量:
hdel key keyname [keyname ...]
- hlen 返回键值对数量:
hlen key
- hexists 键是否存在:
hexists key keyname
- hkeys 所有键:
hkeys key
- hvals 所有值:
hvals key
- hgetall 所有键值对(可使用hscan不会堵塞服务器):
hgetall key
- hincrby(hincrbyfloat) 将键keyname保存的值加上整数int(浮点数float):
hincrby key keyname int(float)
有序集合(Sorted Set)常用命令
- zadd 将给定分值的元素加入有序集合:
zadd key score member [score member ...]
- zrem 移除给定成员, 返回被移除数量:
zrem key member [member ...]
- zcard 返回元素数量:
zcard key
- zincrby 将member加上increment:
zincrby key increment member
- zcount 介于min和max之间数量:
zcount key min max
- zrank 返回member排名:
zrank key member
- zscore 返回member分值:
zscore key member
- zrange 返回排名介于start和stop之间元素, 带有可选withscores选项元素分值一起返回(可使用zscan不会堵塞服务器):
zrange key start stop [withscores]
- zrevrank 返回member位置,元素按照分值从大到小排序:
zrevrank key member
- zrevrange 返回给定排名范围内元素,元素按照分值从大到小排序:
zrevrange key start stop [withscores]
- zrangebyscore(zrevrangebyscore) 返回分值介于min和max之间的元素(从小到大排序):
zrangebyscore key min max [withscores] [limit offset count]
- zremrangebyrank 移除start和end之间元素:
zremrangebyrank key start stop
- zremrangebyscore 移除分值介于start和end之间元素:
zremrangebyscore key start end
- zinterstore 集合交集运算(计算给定的一个或多个有序集的交集,其中给定 key 的数量必须以 numkeys 参数指定,并将该交集(结果集)储存到 destination):
zinterstore destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX]
- zunionstore 集合并集运算:
zunionstore destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX]
发布与订阅命令
- subscribe 订阅一个[或多个]频道:
subscribe channel [channel ...]
- unsubscribe 退订一个[或多个]频道,没指定频道默认退订所有频道:
unsubscribe [channel [channel ...]]
- publish 给频道发送消息:
push channel message
- psubscribe 订阅与给定模式相匹配的所有频道:
psubscribe pattern [pattern ...]
- punsubscribe 退订给定的模式,没有指定默认退订所有频道:
punsubscribe [pattern [pattern ...]]
其他命令
- sort 返回或保存给定列表,集合,有序集合 key 中经过排序的元素:
SORT key [BY pattern] [LIMIT offset count] [GET pattern [GET pattern ...]] [ASC | DESC] [ALPHA] [STORE destination]
- persist 移除键的过期时间:
persist key
- ttl(pttl,2.6以上) 查看键距离过期还有多少秒(毫秒):
ttl key
- expire(pexpire,2.6以上) 设置键在指定秒(毫秒)数后过期:
expire key seconds
- expireat(pexoireat,2.6以上) 设置键在指定(毫秒级)unix时间戳后过期:
expireat key timestamp