三 redis入门

作者: 谁动了MyWorld | 来源:发表于2016-12-02 09:58 被阅读62次

    一 redis的安装启动

    1. 下载redis:https://github.com/MSOpenTech/redis/releases

    2. 启动services,在redis安装目录下运行

    redis-server.exe redis.windows.conf 
    
    1. 启动client
    redis-cli.exe -h 127.0.0.1 -p 6379 
    

    二 redis的数据类型

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

    1. String(字符串):string是redis最基本的类型,一个key对应一个value。
    127.0.0.1:6379> SET name "kevin"
    OK
    127.0.0.1:6379> GET name
    "kevin"
    
    1. Hash(哈希):edis hash 是一个键值对集合。Redis hash是一个string类型的field和value的映射表,hash特别适合用于存储对象
    127.0.0.1:6379> HMSET user:1 username rose age 20 addr guangdong
    OK
    127.0.0.1:6379> HGETALL user:1
    1) "username"
    2) "rose"
    3) "age"
    4) "20"
    5) "addr"
    6) "guangdong"
    
    1. List(列表):Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)。
    127.0.0.1:6379> lpush lists apple orange
    (integer) 2
    127.0.0.1:6379> lrange lists 0 10
    1) "orange"
    2) "apple"
    127.0.0.1:6379> lpush lists banana
    (integer) 3
    127.0.0.1:6379> lrange lists 0 3
    (integer) 3
    1) "banana"
    2) "orange"
    3) "apple"
    127.0.0.1:6379>
    
    1. Set(集合):Redis的Set是string类型的无序集合。
    127.0.0.1:6379> sadd arrays one tow
    (integer) 2
    127.0.0.1:6379> sadd arrays one
    (integer) 0
    127.0.0.1:6379> sadd arrays three
    (integer) 1
    127.0.0.1:6379> sadd arrays one four
    (integer) 1
    127.0.0.1:6379> smembers arrary
    1) "four"
    2) "tow"
    3) "one"
    4) "three"
    
    
    1. zset(sorted set:有序集合):Redis zset 和 set 一样也是string类型元素的集合,且不允许重复的成员。不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。zset的成员是唯一的,但分数(score)却可以重复。
    127.0.0.1:6379> zadd arrs 0 iOS
    (integer) 1
    127.0.0.1:6379> zadd arrs 0 android
    (integer) 1
    127.0.0.1:6379> zrange arrs 0 2
    1) "android"
    2) "iOS"
    127.0.0.1:6379> zadd arrs 0 android
    (integer) 0
    127.0.0.1:6379> zrange arrs 0 2
    1) "android"
    2) "iOS"
    

    三 Redis 键(key)

    • set key value #新增一个key
    • del key #在 key 存在时删除 key。成功返回1
    • dump key #序列化给定 key ,并返回被序列化的值。
    127.0.0.1:6379> dump mykey
    "\x00\x03abc\a\x00&\x9e\xe5\xceI\xb8w\xf8"
    
    • exists key #检查给定 key 是否存在
    • expire key seconds #为给定 key 设置过期时间。
    • persist key #移除 key 的过期时间,key 将持久保持。
    • type key #返回 key 所储存的值的类型。

    四 Redis 发布订阅

    Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。
    Redis 客户端可以订阅任意数量的频道。

    127.0.0.1:6379> SUBSCRIBE redisChat
    
    Reading messages... (press Ctrl-C to quit)
    1) "subscribe"
    2) "redisChat"
    3) (integer) 1
    

    我们先重新开启个 redis 客户端,然后在同一个频道 redisChat 发布消息,订阅者就能接收到消息

    127.0.0.1:6379> PUBLISH redisChat "this is a test message"
    
    (integer) 1
    
    # 订阅者的客户端会显示如下消息
    1) "message"
    2) "redisChat"
    3) "this is a test message"
    

    五 Redis 事务

    1. Redis 事务可以一次执行多个命令, 并且带有以下两个重要的保证:
    • 事务是一个单独的隔离操作:事务中的所有命令都会序列化、按顺序地执行。
    • 事务在执行的过程中,不会被其他客户端发送来的命令请求所打断。
      事务是一个原子操作:事务中的命令要么全部被执行,要么全部都不执行。
    1. 一个事务从开始到执行会经历以下三个阶段:
    • 开始事务。
    • 命令入队。
    • 执行事务。
    1. redis事务命令
    DISCARD #取消事务,放弃执行事务块内的所有命令。
    EXEC #执行所有事务块内的命令。
    MULTI #标记一个事务块的开始。
    
    1. 举个栗子
    127.0.0.1:6379> MULTI
    OK
    
    127.0.0.1:6379> SET bookname "redis"
    QUEUED
    
    127.0.0.1:6379> GET bookname
    QUEUED
    
    127.0.0.1:6379> SADD langue "iOS" "android" "java"
    QUEUED
    
    127.0.0.1:6379> SMEMBERS langue
    QUEUED
    
    127.0.0.1:6379> EXEC
    1) OK
    2) "redis"
    3) (integer) 3
    4) 1) "android"
       2) "java"
       3) "iOS"
    

    相关文章

      网友评论

        本文标题:三 redis入门

        本文链接:https://www.haomeiwen.com/subject/knifmttx.html