1.Redis 安装
$ wget http://download.redis.io/releases/redis-5.0.7.tar.gz
$ tar xzf redis-5.0.7.tar.gz
$ cd redis-5.0.7
$ make
$ make install
$ redis-server ./redis.config
# 如果不适用密码则去掉-a参数
$ redis-cli -a "yourpassword"
2.Redis 配置(测试环境配置)
$ vim ./redis.config
以下为常用的配置
requirepass 后接自定义密码
daemonize yes 以守护进程方式运行
bind 后接绑定的主机地址
dir 后接数据库储存位置
3.通用操作语句
本文章仅提供基础操作语句,更多详情描述请移步官方文档
设置值,没有键的时候添加键值对,有键值对的时候更新值
set myKey myValue
根据键获取值
get myKey
根据键删除值
del myKey
序列化键
dump myKey
判断键是否存在
exists myKey
查看键的有效时间
ttl myKey
设定键的有效时间
expire myKey
移除键的过期时间
persist myKey
pexpire 和 expire 作用相同,不过单位是毫秒
pexpire myKey
pttl 和 ttl 一样,不过单位是毫秒
pttl myKey
获取所有键
keys *
4.STRING 类型数据特有操作
在指定键的值后追加内容,如果键不存在则会自动创建键然后赋值为追加值
append myKey appendValue
指定键的值减一,如不存在,设置为零。不为数字,直接报错
decr myNumKey
可以指定步长的 decr
decrby myNumKey 5
指定键的值加一,如不存在,先为零,再加一。
incr myNumKey
可以指定步长的 incr
incrby myNumKey
增加浮点数,自定步长
incrbyfloat myNumKey 0.25
批量设置键值对
mset key1 value1 key2 value2
根据键批量获取值
mget key1 key2
设置值的同时设置有效时间
setex key1 200 value1
跟上面一样,单位是毫秒
psetex key1 200 value1
set if key not exist
setnx key value
为多个键设置值,但其中有一个存在则都不设置
msetnx key value key1 value1 key2 value2
获取字符串相应索引间的字符串。
getrange myKey 0 2
各种 range 的操作类似 Python 的切片,也支持反向切片,但以切片的方式只能从表头到表位取值,如
lpush lKey lValue1 lValue2 lValue3
lrange lKey 0 -1
1) "lValue1"
2) "lValue2"
3) "lValue3"
lrange lKey -1 0
(empty list or set)
lrange -3 -1
1) "lValue1"
2) "lValue2"
3) "lValue3"
替换一个键切片范围内的值
setrange key value 0 2
获取指定键的值的长度
strlen key
BIT 操作
pass
列表操作
将值依次从左到右插入到列表头部
lpush listKey1 value1 value2 value3
将值依次从右到左插入到列表头部
rpush listKey2 value1 value2 value3
获取索引范围内的值
lrange k1
移除列表头元素
lpop
移除列表尾元素
rpop
返回列表内指定索引元素,支持逆向取值
lindex 0
保留列表指定范围内的值
ltrim
阻塞左弹出。
blpop bkey 10
阻塞右弹出
brpop bkey 10
集合操作
集合的特点:集合内的元素不能重复
添加元素到集合
sadd sKey1 sValue1 sValue2 sValue3
移除集合内指定的元素
srem sKey1 sValue1
判断元素是否是 set 成员
sismenber sKey sValue
返回集合元素数量
scard sKey
返回集合内全部元素
smembers sKey
随机选择元素出栈
spop sKey
随即展示元素
srandmenber sKey
取两个集合的差集
sdiff sKey1 sKey2
取两个集合的差集放在一个新的集合里
sdifferstore newKey sKey1 sKey2
取两个集合的交集
sinter sKey1 sKey2
取两个集合的交集放在一个新的集合里
sinterstore newKey sKey1 sKey2
取两个集合的并集
sunion sKey1 sKey2
取两个集合的并集存在一个集合里
sunionstore newKey sKey1 sKey2
有序集合操作
有序集合在集合的基础上增加了 score 这个排序依据从而让集合也能排序。
添加元素和排序依据到 zset
zadd zKey1 0.25 zValue
获取指定值的 score
zscore zKey1 zValue
根据索引返回范围内的值,反向取值 zrevange
zrange zKey1 0 -1
返回元素个数
zcard zKey
返回指定 score 区间内的成员
zcount zKey 1 2
返回指定元素在 zset 中的索引
zrank zKey zValue1
返回指定元素在 zset 中的反向索引
zrevrank zKey zValue1
增加 value 的 score
zincrby zKey 0.25 zValue
弹出指定元素
zrem zKey zValue