三 redis入门

一 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"
    原文作者:谁动了MyWorld
    原文地址: https://www.jianshu.com/p/ede651b7720d
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞