redis安装:
从网站下载源码安装包
wget https://download.redis.io/releases/redis-5.0.8.tar.gz
解压:
tar -zxvf redis-5.0.8.tar.gz
解压后进入文件夹:redis-5.0.8 运行安装命令:
sudo make && sudo make install
安装完成后需要进入redis.conf更改配置项:
daemonize 改为yes
复制配置文件redis.conf到记得住的放置配置文件的位置
(/usr/local/etc)
启动redis,同时附带配置文件:
redis-server /usr/local/etc/redis.conf
redis的文档网站:
reisdoc.com
redis持久化
rdb方式:默认的持久化方式,直接将镜像内存里的数据保存在dump.rdb文件里
进入redis.conf更改配置项dir:
dir ./ 改为 /var/local/redis (若没有redis文件则需要手动创建)
若持久化失败可能是因为文件保存目录当前用户没有写入权限,需要手动修改数据文件保存目录文件夹权限:
chmod 775 dirname
redis命令
字符串
存入数据: | set key value |
读取数据: | get key |
若数据key不存在 则存入数据,存在则无操作 | setnx key value |
同时存入多个值 | mset kay1 value1 key2 value2 … |
同时获取多个值 | mget key1 key2 key3 |
同时存入多个值 并且所有的key值都必须不存在才可以执行成功,任意一个key值存在则执行失败 执行成功返回1 失败返回0 | msetnx kay1 value1 key2 value2 … |
存入时限数据,单位:秒 | set key value ex n |
存入时限数据,单位:豪秒 | set key value px n |
存入时限数据,单位:豪秒 | psetex key n value |
查看数据的过期时间: | ttl key |
将键 key 的值设为 value , 并返回键 key 在被设置之前的旧值 | getset key value |
返回键 key 储存的字符串值的长度 | strlen key |
在原有的key键对应的值末尾增加value,若key键不存在则等同于set key value | append key value |
将key键对应的value值 从第offset位开始替换,若key键不存在则offset位之前的部分用/x00表示 | setrange key offset value |
将key键对应的值从start位开始取到end位 支持负数定位,不支持从右往左取值,若end值大于实际字符串长度,超出的部分自动忽略 | getrange key start end |
对key键对应的value值进行+1操作,若不存在则自动视value值为0 | incr key |
对key键对应的value值进行+n操作,若不存在则自动视value值为0 | incrby key n |
对key键对应的value值进行+n(n为小数)操作,若不存在则自动视value值为0 | incrbyfloat key n |
对key键对应的value值进行-1操作,若不存在则自动视value值为0 | decr key |
对key键对应的value值进行-n操作,若不存在则自动视value值为0 | decrby key n |
哈希值
创建key值 有field域 对应value值 | hset key field value |
key不存在则 创建key值,若已存在则覆盖原属性 | hsetnx key field value |
获取key的field域的值 | hget key field |
判断key是否有field域 | hexists key field |
删除key的field域 | hdel key fields |
获取key有多少field域 | hlen key |
获取key的field域的值的长度 | hstrlen key field |
对key值里field域的值和increment值进行数学运算 | hincrby key field increment |
对key值里field域的值和increment值进行数学运算,increment可以为小数 | hincrbyfloat key field increment |
同时对key设置多个field-value(域-值) | hmset key field value … |
同时获取key里多个field域对应的值 | hmget key field … |
返回key里所有的域 | hkeys key |
返回key里所有域对应的值 | hvalues key |
返回key里所有域和对应的值 | hgetall key |
列表值:
向key列表最左边传入value值,value值允许重复,可以传入多个值 | lpush key value[s] |
当key列表存在且为list对象时 执行lpush存入数值操作,否则不做任何动作 | lpushx key value[s] |
向key列表最右边传入value值,value值允许重复,可以传入多个值 | rpush key value[s] |
当key列表存在且为list对象时 执行rpush存入数值操作,否则不做任何动作 | rpushx key value[s] |
删除列表key从左往右第一个数值,并返回删除后的第一个数值,若数值不存在则返回nil | lpop key |
删除列表key从右往左第一个数值,并返回删除后的第一个数值,若数值不存在则返回nil | rpop key |
删除列表key1里从右往左第一个value数值,然后将删除的value数值添加在key2列表的最左侧,返回值为被删除的value值,如果key1和key2是同一张表则将key表最右侧的value值放置在最左侧 | rpoplpush key1 key2 |
从key列表中删除count数量的value值:count<0时:从表最右侧开始搜索删除,删除数量为count的绝对值,count>0时:从表最左侧开始搜索删除,count=0时:删除表中能找到的全部 | lrem key count value |
获取key列表值的长度,不存在则返回0,数据类型不是列表则报错 | llen key |
获取key列表下标为index的value值,不存在则返回nil,数据类型不是列表则报错 | lindex key index |
在key列表的pivot值 之前/之后插入一个value值,若pivot不存在则不进行任何操作,返回-1;若key不存在则不进行任何操作,返回0;数据类型不是列表则报错 | linsert key before/after pivot value |
将key列表中下标为index 的数值替换为value,key为空或下标超出范围则报错 | lset key index value |
获取列表中下标为start到stop中间的所有值,若start超出范围返回空值 | lrange key start stop |
将列表中除了下表为start到stop以外的所有值删除,若start或stop的值超出范围则清空列表,返回空值 | ltrim key strat stop |
从列表key中删除从左往右第一个数值 timeout为操作等待的时长(秒),若数据存在执行成功则返回被删除的数据,若超出等待时间且无数据删除则返回等待时长,timeout设置为0则表示持续等待 | blpop key [keys] timeout |
从列表key中删除从右往左第一个数值 timeout为操作等待的时长(秒),若数据存在执行成功则返回被删除的数据,若超出等待时间且无数据删除则返回等待时长,timeout设置为0则表示持续等待 | brpop key [keys] timeout |
删除列表key1里从右往左第一个value数值,然后将删除的value数值添加在key2列表的最左侧,返回值为被删除的value值,如果key1和key2是同一张表则将key表最右侧的value值放置在最左侧 若key1列表不存在则等待timeout时长,超时后执行成果则返回删除值和等待时间,执行失败则返回nil和等待时间 | brpoplpush key1 key2 timeout |
集合
在key集合中添加member数据 可以添加多个 | sadd key member [member…] |
判断key集合中是否存在member数据,是返回1,否返回0 | sinmember key member |
从key集合中随机取 coun数量的值 | srandmember key count |
返回key集合中所有的member值 | smembers key |
取出key1集合中存在,同时key2集合中不存在的member值 | sdiff key1 key2 |
将key1集合和key2集合中的member值一起取出来,同时去除重复项 | sunion key1 key2 |
返回同时在key1和key2中存在的member值 | sinter key1 key2 |
有序集合
在key有序集合中添加member和score值 若member已存在则更新score值 | zadd key score member [score member…] |
取出key有序集合中下标在start和stop中间的所有member值 | zrange key start stop |
返回member在key有序集合中的下标 | zrank key member |
倒序取出key有序集合中下标在start和stop中间的所有member值,若在结尾加上withscores则会和score值一起返回 | zrevrange key 0 -1 (withscores) |
将key有序集合中member对应的score值与increment进行数学运算 | zincrby key increment member |