• redis 随笔


    简介

    Redis是一个开源,高级的键值存储和一个适用的解决方案,用于构建高性能,可扩展的Web应用程序。

    Redis是一个内存数据库,但在磁盘数据库上是持久的,因此它代表了一个不同的权衡,在这种情况下,在不能大于存储器(内存)的数据集的限制下实现非常高的写和读速度。

    内存数据库的另一个优点是,它与磁盘上的相同数据结构相比,复杂数据结构在内存中存储表示更容易操作,并且可在这些数据类型上定义原子操作。。 因此,Redis可以做很少的内部复杂性。

    redis 和 memcached####

    • redis 支持复杂的数据结构:redis 相比 memcached 来说,拥有更多的数据结构,能支持更丰富的数据操作。如果需要缓存能够支持更复杂的结构和操作, redis 会是不错的选择。
    • redis 原生支持集群模式:在 redis3.x 版本中,便能支持 cluster 模式,而 memcached 没有原生的集群模式,需要依靠客户端来实现往集群中分片写入数据。
    • 性能对比:由于 redis 只使用单核,而 memcached 可以使用多核,所以平均每一个核上 redis 在存储小数据时比 memcached 性能更高。而在 100k 以上的数据中,memcached 性能要高于 redis,虽然 redis 最近也在存储大数据的性能上进行优化,但是比起 memcached,还是稍有逊色。
    • redis是内存数据库,优点见上述

    具体操作###

    redis运行

    本地输入

    redis-server redis.windows.conf
    
    

    检测redis是否工作, 输入命令PING

    
    127.0.0.1:6379> ping
    PONG
    
    

    这表明Redis已成功在您的计算机上安装了。

    redis 配置

    在Redis中,在Redis的根目录下有一个配置文件(redis.conf)。当然可以通过Redis CONFIG命令获取和设置所有的Redis配置。

    1、(1)redis获得配置:

     127.0.0.1:6379>config get requirepass "pass" 
    

    即获取到 连接密码

    (2)设置密码:

    
    127.0.0.1:6379> config set requirepass "pass" 
    OK 
    127.0.0.1:6379> config get requirepass 
    1) "requirepass" 
    2) "pass"
    
    

    设置密码后,如果任何客户端运行命令而不进行身份验证,则会返回一个(error) NOAUTH Authentication required.的错误信息。 因此,客户端需要使用AUTH命令来验证。

    127.0.0.1:6379> AUTH pass
    OK
    
    

    2、编辑配置
    要更新配置,可以直接编辑redis.conf文件,也可以通过CONFIG set命令更新配置。

    
    redis 127.0.0.1:6379> CONFIG SET CONFIG_SETTING_NAME NEW_CONFIG_VALUE
    

    示例

    redis 127.0.0.1:6379> CONFIG SET loglevel "notice" 
    OK 
    redis 127.0.0.1:6379> CONFIG GET loglevel  
    1) "loglevel" 
    2) "notice"
    

    3 、基础命令

    1)获得符合规则的键名列表

    KEYS PATTERN
    

    使用SET命令建立一个名为bar的键,同样keys * 可以获取结果。

    1. 判断是否存在某个键
    EXISTS key
    


    如果键存在则返回1,不存在则返回0

    3)删除键

    DEL key [key...]
    

    可以删除一个或多个键,返回值为删除的键的个数。

    4)获取键值的数据类型

    TYPE key
    

    4、redis 数据类型

    (1)字符串
    Redis中的字符串是一个字节序列。Redis中的字符串是二进制安全的,这意味着它们的长度不由任何特殊的终止字符决定。因此,可以在一个字符串中存储高达512兆字节的任何内容。

    示例:
    
    
    redis 127.0.0.1:6379> set name "hello" 
    OK 
    redis 127.0.0.1:6379> get name 
    "hello"
    

    set 与get 为redis命令,name为存储的键,hello 为存储的值。

    (2)hash/散列
    Redis散列/哈希(Hashes)是键值对的集合。Redis散列/哈希是字符串字段和字符串值之间的映射。因此,它们用于表示对象。

    
    127.0.0.1:6379> hmset key name "miao" password "wang" points 200
    
    
    127.0.0.1:6379> hgetall key
    1) "name"
    2) "miao"
    3) "password"
    4) "wang"
    5) "points"
    6) "200"
    
    

    散列/哈希数据类型用于存储包含用户的基本信息的用户对象。这里HMSET,HGETALL是Redis的命令,而key是键的名称。

    (3)列表
    Redis集合是字符串的无序集合。在Redis中,您可以添加,删除和测试成员存在的时间O(1)复杂性。

    127.0.0.1:6379> sadd fruits apple
    (integer) 0
    127.0.0.1:6379> sadd fruits pear
    (integer) 0
    127.0.0.1:6379> sadd fruits orange
    (integer) 1
    127.0.0.1:6379> sadd fruits orange
    (integer) 0
    127.0.0.1:6379> smembers fruits
    1) "apple"
    2) "orange"
    3) "pear"
    
    

    列表具有不重复性。
    一个集合中的最大成员数量为2^32 - 1(即4294967295,每个集合中元素数量可达40亿个)个。

    (4)redis集合
    Redis集合是唯一字符串的无序集合。 唯一值表示集合中不允许键中有重复的数据。

    在Redis中设置添加,删除和测试成员的存在(恒定时间O(1),而不考虑集合中包含的元素数量)。列表的最大长度为2^32 - 1个元素(即4294967295,每组集合超过40亿个元素)。

    127.0.0.1:6379> sadd myset "pencil"
    (integer) 0
    127.0.0.1:6379> sadd myset "book"
    (integer) 0
    127.0.0.1:6379> sadd myset "card"
    (integer) 1
    127.0.0.1:6379> sadd myset "card"
    (integer) 0
    127.0.0.1:6379> smembers myset
    1) "book"
    2) "card"
    3) "pencil"
    
    

    在上面的示例中,通过命令SADD将三个值插入到名称为“myset”的Redis集合中。

    redis服务器

    127.0.0.1:6379> info
    

    说明了如何获取有关服务器的所有统计信息和信息。

  • 相关阅读:
    常见寻找OEP脱壳的方法
    Windows内核原理系列01
    HDU 1025 Constructing Roads In JGShining's Kingdom
    HDU 1024 Max Sum Plus Plus
    HDU 1003 Max Sum
    HDU 1019 Least Common Multiple
    HDU 1018 Big Number
    HDU 1014 Uniform Generator
    HDU 1012 u Calculate e
    HDU 1005 Number Sequence
  • 原文地址:https://www.cnblogs.com/gloria-liu/p/9717833.html
Copyright © 2020-2023  润新知