zoukankan      html  css  js  c++  java
  • spring redis学习笔记

    1.下载: https://github.com/MicrosoftArchive/redis/releases,并解压文件;

    2.双击redis-server.exe,运行redis服务器;

    3.双击redis-cli.exe,运行redis客服端;

        远程连接redis服务器:./redis-cli -h 127.0.0.1 -p 6379 -a password

    4.参数说明:config get *

    daemonize no(默认)/yes

    是否启用守护线程

    port 6379(默认)

    设置端口

    bind 127.0.0.1

    绑定主机IP

    timeout 300

    客服端闲置超时

    loglevel verbose(默认)

    debug、verbose、notice、warning

    设置日志级别

    logfile stdout

    设置日志记录方式

    databases 0(默认)

    设置数据库的数量

    save <seconds> <changes>

    设置数据同步到文件策略

    rdbcompression yes(默认)/no

    设置存入本地数据库时是否压缩数据(LZF)

    dbfilename dump.rdb

    设置本地数据库名称

    dir ./

    设置本地数据库目录

    slaveof <masterip> <masterport>

    设置从机连接主机的IP和PORT

    masterauth <master-password>

    设置从机连接主机的密码

    requirepass foobared

    设置客服端连接服务器密码

    maxclients 128

    设置客服端最大连接数,0不设置

    maxmemory <bytes>

    设置redis最大内存限制

    appendonly no(默认)/yes

    设置是否在每次更新操作后进行日志记录

    appendfilename appendonly.aof

    设置更新日志文件名

    appendfsync everysec(默认)/no/always

    设置更新文件策略

    vm-enabled no(默认)/yes

    设置是否启用虚拟内存机制

    vm-swap-file /tmp/redis.swap(默认值)

    设置虚拟内存文件路径

    vm-max-memory 0

    设置所有大于vm-max-memory的数据存入虚拟内存文件,其中索引一直储存在内存在

    vm-page-size 32

    设置每个虚拟内存分页大小

    vm-pages 134217728

    设置swap文件中的page数量

    vm-max-threads 4

    设置访问swap文件的线程数,0为串行

    glueoutputbuf yes(默认)/no

    设置在向客户端应答时,是否把较小的包合并为一个包发送

    hash-max-zipmap-entries 64

    hash-max-zipmap-value 512

    设置在超过一定的数量或者最大的元素超过某一临界值时,采用一种特殊的哈希算法

    activerehashing yes(默认)/no

    设置是否激活重置哈希

    include /path/to/local.conf

    设置包含其它的配置文件,可以在同一主机上多个Redis实例之间使用同一份配置文件,而同时各个实例又拥有自己的特定配置文件

    5.数据类型

    类型

    简介

    特性

    场景

    String(字符串)

    二进制安全

    可以包含任何数据,比如jpg图片或者序列化的对象,一个键最大能存储512M

    ---

    Hash(字典)

    键值对集合,即编程语言中的Map类型

    适合存储对象,并且可以像数据库中update一个属性一样只修改某一项属性值(Memcached中需要取出整个字符串反序列化成对象修改完再序列化存回去)

    存储、读取、修改用户属性

    List(列表)

    链表(双向链表)

    增删快,提供了操作某一段元素的API

    1,最新消息排行等功能(比如朋友圈的时间线)

    2,消息队列

    Set(集合)

    哈希表实现,元素不重复

    1,添加、删除,查找的复杂度都是O(1)

    2,为集合提供了求交集、并集、差集等操作

    1,共同好友

    2,利用唯一性,统计访问网站的所有独立ip 3,好用推荐时,根据tag求交集,大于某个阈值就可以推荐

    Sorted Set(有序集合)

    将Set中的元素增加一个权重参数score,元素按score有序排列

    数据插入集合时,已经进行天然排序

    1,排行榜

    2,带权重的消息队列

    6.对key的操作:

    序号

    命令及描述

    1

    DEL key
    该命令用于在 key 存在时删除 key。

    2

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

    3

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

    4

    EXPIRE key seconds
    为给定 key 设置过期时间。

    5

    EXPIREAT key timestamp 
    EXPIREAT 的作用和 EXPIRE 类似,都用于为 key 设置过期时间。 不同在于 EXPIREAT 命令接受的时间参数是 UNIX 时间戳(unix timestamp)。

    6

    PEXPIRE key milliseconds 
    设置 key 的过期时间以毫秒计。

    7

    PEXPIREAT key milliseconds-timestamp 
    设置 key 过期时间的时间戳(unix timestamp) 以毫秒计

    8

    KEYS pattern 
    查找所有符合给定模式( pattern)的 key 。

    9

    MOVE key db 
    将当前数据库的 key 移动到给定的数据库 db 当中。

    10

    PERSIST key 
    移除 key 的过期时间,key 将持久保持。

    11

    PTTL key 
    以毫秒为单位返回 key 的剩余的过期时间。

    12

    TTL key 
    以秒为单位,返回给定 key 的剩余生存时间(TTL, time to live)。

    13

    RANDOMKEY 
    从当前数据库中随机返回一个 key 。

    14

    RENAME key newkey 
    修改 key 的名称

    15

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

    16

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

    7.数据备份与恢复

        save: 该命令将在 redis 安装目录中创建dump.rdb文件。如果需要恢复数据,只需将备份文件 (dump.rdb) 移动到 redis 安装目录并启动服务即可.

        config get dir:获取dump.rdb文件路径.

    8.redis安全

        AUTH password: 我们可以通过 redis 的配置文件设置密码参数,这样客户端连接到 redis 服务就需要密码验证,这样可以让你的 redis 服务更安全。

    9.性能测试

        redis-benchmark [option] [option value]

    序号

    选项

    描述

    默认值

    1

    -h

    指定服务器主机名

    127.0.0.1

    2

    -p

    指定服务器端口

    6379

    3

    -s

    指定服务器 socket

    4

    -c

    指定并发连接数

    50

    5

    -n

    指定请求数

    10000

    6

    -d

    以字节的形式指定 SET/GET 值的数据大小

    2

    7

    -k

    1=keep alive 0=reconnect

    1

    8

    -r

    SET/GET/INCR 使用随机 key, SADD 使用随机值

    9

    -P

    通过管道传输 <numreq> 请求

    1

    10

    -q

    强制退出 redis。仅显示 query/sec 值

    11

    --csv

    以 CSV 格式输出

    12

    -l

    生成循环,永久执行测试

    13

    -t

    仅运行以逗号分隔的测试命令列表。

    14

    -I

    Idle 模式。仅打开 N 个 idle 连接并等待。

    10.客服端连接

        Redis 通过监听一个 TCP 端口或者 Unix socket 的方式来接收来自客户端的连接,当一个连接建立后,Redis 内部会进行以下一些操作:

        1.首先,客户端 socket 会被设置为非阻塞模式,因为 Redis 在网络事件处理上采用的是非阻塞多路复用模型。

        2.然后为这个 socket 设置 TCP_NODELAY 属性,禁用 Nagle 算法

        3.然后创建一个可读的文件事件用于监听这个客户端 socket 的数据发送

    S.N.

    命令

    描述

    1

    CLIENT LIST

    返回连接到 redis 服务的客户端列表

    2

    CLIENT SETNAME

    设置当前连接的名称

    3

    CLIENT GETNAME

    获取通过 CLIENT SETNAME 命令设置的服务名称

    4

    CLIENT PAUSE

    挂起客户端连接,指定挂起的时间以毫秒计

    5

    CLIENT KILL

    关闭客户端连接

    11. Redis 管道技术

        Redis 管道技术可以在服务端未响应时,客户端可以继续向服务端发送请求,并最终一次性读取所有服务端的响应。

  • 相关阅读:
    ARM汇编指令
    Linux系统里如何彻底的清空终端屏幕?
    Linux命令(16)压缩,解压文件
    Linux命令(18)查看当前用户who、whoami、who am i
    Linux命令(17)du 查看文件和目录磁盘使用情况
    Mongodb(3)插入文档,更新文档,删除文档
    Mongodb(2)创建数据库,删除数据库,创建集合,删除集合,显示文档内容
    Mongodb(1)如何存储以及简介
    Linux命令(15)查看系统版本信息
    Python 结巴分词(2)关键字提取
  • 原文地址:https://www.cnblogs.com/jinloooong/p/9609426.html
Copyright © 2011-2022 走看看