zoukankan      html  css  js  c++  java
  • Redis数据库学习(基础)

    Redis介绍

    REmote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统。

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

    Redis安装

    linux下:

    $ wget http://download.redis.io/releases/redis-2.8.17.tar.gz
    $ tar xzf redis-2.8.17.tar.gz
    $ cd redis-2.8.17
    $ make
    

    安装后

    $ cd src
    $ ./redis-server
    

    就可以启动redis

    在后台启动 ./redis-server &

    $ cd src
    $ ./redis-cli
    

    就可以与redis交互了

    redis配置

    Redis 的配置文件位于 Redis 安装目录下,文件名为 redis.conf(Windows 名为 redis.windows.conf)。

    你可以通过 CONFIG 命令查看设置配置项。

    查看配置: CONFIG GET

    格式: redis 127.0.0.1:6379> CONFIG GET CONFIG_SETTING_NAME

    编辑配置: CONFIG SET

    语法: redis 127.0.0.1:6379> CONFIG SET CONFIG_SETTING_NAME NEW_CONFIG_VALUE

    几个常见配置:

    port 6379 : 端口,默认6379

    bind 127.0.0.1 : 绑定的主机地址 (127.0.0.1 为本机可访问,0.0.0.0 任意机器可访问,redis未授权访问)

    dir ./ : 指定本地数据库存放目录,常用来写shell

    dbfilename dump.rdb : 指定本地数据库文件名,默认值为 dump.rdb (配合上一条写SHELL)

    Redis数据类型

    Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。

    string:
    redis 的 string 可以包含任何数据。比如jpg图片或者序列化的对象,string 类型的值最大能存储 512MB。

    Hash:
    Redis hash 是一个键值(key=>value)对集合

    Redis hash 是一个 string 类型的 field 和 value 的映射表,hash 特别适合用于存储对象

    List(列表):

    Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)

    Set(集合):

    Redis 的 Set 是 string 类型的无序集合

    zset(sorted set:有序集合)

    Redis zset 和 set 一样也是string类型元素的集合,且不允许重复的成员

    Redis命令

    客户端基本语法: redis-cli

    启动 redis 服务器,打开终端并输入命令 redis-cli,该命令会连接本地的 redis 服务。

    在远程服务上执行命令

    如果需要在远程 redis 服务上执行命令,同样我们使用的也是 redis-cli 命令。

    $ redis-cli -h host -p port -a password

    Redis 键命令

    Redis 键命令用于管理 redis 的键。

    基本语法 : COMMAND KEY_NAME

    例: SET lonmar hacker

    DEL 删除命令。 如果键被删除成功,命令执行后输出 (integer) 1,否则将输出 (integer) 0

    lonmar 是 键 hacker是 value值

    其他的几个键命令:

    EXISTS key 检查给定 key 是否存在。

    DUMP key 序列化给定 key ,并返回被序列化的值。

    TYPE key 返回 key 所储存的值的类型。

    Redis 字符串(String)

    Redis 字符串数据类型的相关命令用于管理 redis 字符串值

    其实和key value类似

    语法 COMMAND KEY_NAME

    常用的 redis 字符串命令:

    SET key value 设置指定 key 的值
    GET key 获取指定 key 的值。
    GETSET key value 将给定 key 的值设为 value ,并返回 key 的旧值(old value)。

    Redis Hash

    常用命令:

    HDEL key field1 [field2] 删除一个或多个哈希表字段
    HEXISTS key field 查看哈希表 key 中,指定的字段是否存在。
    HGET key field 获取存储在哈希表中指定字段的值。
    HGETALL key 获取在哈希表中指定 key 的所有字段和值
    HINCRBY key field increment 为哈希表 key 中的指定字段的整数值加上增量 increment
    HKEYS key 获取所有哈希表中的字段
    HMGET key field1 [field2] 获取所有给定字段的值
    HMSET key field1 value1 [field2 value2 ] 同时将多个 field-value (域-值)对设置到哈希表 key 中。

    Redis 数据备份与恢复

    Redis SAVE 命令用于创建当前数据库的备份

    redis Save 命令基本语法:

    redis 127.0.0.1:6379> SAVE

    redis 127.0.0.1:6379> SAVE 
    OK
    

    恢复数据

    如果需要恢复数据,只需将备份文件 (dump.rdb) 移动到 redis 安装目录并启动服务即可

    获取 redis 目录: CONFIG GET dir

    redis安全性

    给redis加锁

    通过命令 CONFIG get requirepass 查看是否设置了密码验证:

    默认情况下 requirepass 参数是空的,即无需密码访问redis

    添加密码 CONFIG set requirepass "123456"

    AUTH

    如上一张图所示的,设置密码后要认证

    AUTH PASSWORD

  • 相关阅读:
    Python 设置 IP 代理 访问网页 ( 用户名密码验证代理 )
    Squid 3.3 部署 HTTP代理服务器
    文件打开模式 w+ r+ a+ 区别和辨析
    Python 学习工具书
    Conference Related to social network.
    Linux 使用故障小记
    正则表达式学习连接
    再次被windows操作系统伤害之吐槽
    数据结构——线性表的顺序表示(1)
    斐波那契数列两种算法的时间复杂度
  • 原文地址:https://www.cnblogs.com/l0nmar/p/13374797.html
Copyright © 2011-2022 走看看