zoukankan      html  css  js  c++  java
  • Redis

    介绍

    Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。

    Redis 与其他 key - value 缓存产品有以下三个特点:

    • Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
    • Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
    • Redis支持数据的备份,即master-slave模式的数据备份。

    安装

    window版本地址:https://github.com/tporadowski/redis/releases

    如果是Linux,请参照:https://www.runoob.com/redis/redis-install.html

    下载完成后,cd到该路径执行下面命令,你也可配置环境直接运行。

    redis-server.exe redis.windows.conf

    查看是否安装成功

    执行:redis-server

    如果出现下图页面,即安装成功。注意:在运行过程中不关闭服务端。

    安装服务

    redis-server --service-install redis.windows-service.conf --loglevel verbose

    安装服务的时候一定要在redis路径下执行该命令。

    卸载服务

    redis-server --service-uninstall

    开启服务

    redis-server --service-start

    停止服务

    redis-server --service-stop

    基础设置

    连接

    如果不指定默认是本机。

    $ redis-cli -h host -p port -a password
    
    -h 服务器地址 -p 端口号 -a 密码

    设置密码

    第一种

    1、直接通过配置文件,搜索:requirepass foobared 找到该命令。

    2、取消注释,foobared改为自己的密码即可。

    3、重新运行服务,必须加上配置文件

    redis-server.exe redis.windows.conf

    第二种

    1. 命令行设置密码。

    运行cmd切换到redis根目录,先启动服务端

    >redis-server.exe

    另开一个cmd切换到redis根目录,启动客户端

    >redis-cli.exe -h 127.0.0.1 -p 6379

    客户端使用config get requirepass命令查看密码

    >config get requirepass
    1)"requirepass"
    2)""    //默认空

    客户端使用config set requirepass yourpassword命令设置密码

    >config set requirepass 123456
    >OK

    一旦设置密码,必须先验证通过密码,否则所有操作不可用

    >config get requirepass
    (error)NOAUTH Authentication required

    使用auth password验证密码

    >auth 123456
    >OK
    >config get requirepass
    1)"requirepass"
    2)"123456"

    也可以退出重新登录

    redis-cli.exe -h 127.0.0.1 -p 6379 -a 123456

    命令行设置的密码在服务重启后失效,所以一般不使用这种方式。

    库操作

    切换数据库

    select index

    例如:select 0

    删除当前库所有键

    flushdb

    删除所有库的所有键

    flushall

    键操作

    当前库中的键

    keys pattern

    匹配当前库所有键:keys *

    匹配当前库n开头的键:keys n*

    重命名键

    修改 key 的名称

    rename key newkey

    仅当 newkey 不存在时,将 key 改名为 newkey 。

    renamenx key newkey

    当前键是否存在

    exists key

    例如:exists t1 t2

    删除键

    del key key1 ...

    判断键类型

    type key

    获取随机的一个键

    randomkey

    获取键数量

    dbsize

    获取键过期时间

    以毫毛返回:pttl

    以秒返回:ttl key

    -1表示永久不过期

    设置键过期时间

    以毫秒设置:pexpire key  milliseconds

    以秒设置:expire key seconds

    移动键

    move key db

    例如:move test 1

    字符串操作

    设置值

    单键设值:set key value

    多键设值:mset key value key1 value1

    键存在不设值:setnx key value

    键全不在设值:msetnx key value key1 value1

    设置过期时间:setex key seconds value

    偏移量(不足时补,足够时替换):setrange key offset value

    增加值:append key value

    设置新值并返回上次值:getset key value

    获取值

    单键取值:get key

    多键取值:mget key key1 .....

    范围取值(0开始,顾头顾尾):getrange key start end

    增量与减量

    增一:incr key

    减一:decr key

    增多:incrby key increment

    减多:decrby key increment

    列表操作

    添加值

    尾添加:lpush key value value1 ...

    首添加:rpush key value value1 ...

    获取值

    索引取值:lindex key index

    切片取值:lrange key start end

    更新值

    索引更新:lset key index value

    删除值

    按数量删除:lrem key count value

    删除首值,并返回:lpop key

    删除尾值,并返回:rpop key

    如果列表为空,等待删除首(0表示一直等待):blpop key key1 timeout

    如果列表为空,等待删除尾(0表示一直等待):brpop key key1 timeout

    删除自身列表的尾元素,添加到别的列表头部  :rpoplpush source destination

    其它

    键长度:llen key

    截取(被截取的保留,其它删除):ltrim key start stop

    集合操作

    添加值

    添加:sadd key value value1 ...

    获取值

    获取集合所有值:smembers key

    随机返回集合中元素(不指定count,默认返回一个):srandmenber key count

    删除值

    删除:srmv key value value1 ...

    随机删除,并返回该值:spop key

    将指定值,从起始表到终表:smove source destination value

    数学集合

    键的交集:sinter key key1 ...

    键的交集保存到另一个键当中:sinterstore destination key key1 ...

    键的并集:sunion key key1 ...

    键的交集保存到另一个键当中:sunionstore destination key key1 ...

    键的差集:sdiff key key1 ...

    键的交集保存到另一个键当中:sdiffstore destination key key1 ...

    其它

    获取成员数量:scard key

    该键中是否有该值:sismember key value

    有序集合操作

    添加值

    添加:zadd key score value score1 value1 ...

    增量添加。如果该值存在则该score=score+增量值,不存在增量值为score值:

    zincrby key increment value

    获取值

    查询成员排名,score从小到大排序:zrank key value

    查询成员排名,score从大到小排序:zrevrank key value

    索引取值,score从小到大排序(withscores带上后,会输出score):zrange key start stop [withscores]

    索引取值,score从大到小排序(withscores带上后,会输出score):zrevrange key start stop [withscores]

    分数范围取值,score从小到大排序:zrangebyscore key min max [withscores]

    分数范围取值,score从大到小排序:zrevrangebyscore key min max [withscores]

    删除值

    删除:zrem key value value1 ...

    索引删除:zremrangebyrank key start stop

    分数删除:zremrangebyscore key min max

    其它

    键成员个数:zcard key

    成员分数范围的个数:zcount key min max

    散列操作

    field:映射键

    value:映射值

    添加值

    单值添加:hset key field value

    多值添加:hmset key field value field value

    值存在不添加,不存在添加:hsetnx key field value

    获取值

    单值获取:hget key field

    多值获取:hmget key field field1 ...

    该散列表所有键:hkeys key

    该散列表所有值:hvals key

    该散列表所有键和值:hgetall key

    删除值

    删除映射键:hdel key field field1 ...

    增量与减量

    增量(increment:需要增加的数,或要减的数):hincrby key field increment

    例如:hincrby key field -1

    其它

    映射键是否存在:hexists key field

    映射键个数:hlen key

  • 相关阅读:
    20175202 《Java程序设计》第六周学习总结
    2018-2019-2 20175202实验一《Java开发环境的熟悉》实验报告
    20175202 《Java程序设计》迭代和JDB
    20175202 《Java程序设计》第五周学习总结
    20175202 《Java程序设计》第三周学习总结
    20175202 《Java程序设计》第四周学习总结
    第六周学习总结
    java第一次实验
    第五次学习总结
    第四次学习总结
  • 原文地址:https://www.cnblogs.com/py-peng/p/13196257.html
Copyright © 2011-2022 走看看