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.通用操作语句

本文章仅提供基础操作语句,更多详情描述请移步官方文档

https://redis.io/commands

设置值,没有键的时候添加键值对,有键值对的时候更新值

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