Redis

安装

官网:Redis

解压下载后进入src目录,运行make进行编译

如果make完之如上图代表成功安装

Redis主要运行在Linux、BSD、Mac中,如果在make阶段报错,可能是没有安装C语言的编译环境,需要安装gcc。

Linux:yum install -y gcc

Mac: brew install gcc

 Redis安装完毕后,在src下会有两个常用命令:

redis-server,启动Redis服务,默认端口号6379

redis-cli,Redis自带的客户端工具。

1、需要进入Redis的src目录下打开服务redis-server

2、然后在另外一个终端打开客户端redis-cli

ping后返回pong代表了连接成功,可以设置密码,上图就是因为我设置了密码,所以提示需要认证。

密码设置

设置密码方式打开redis安装目录下的redis.conf文件,在里面添加一行密码

requirepass Redis123        //requirepass yourpassword

 设置密码之后进入需要重启redis服务,并且使用redis.conf文件

redis-server ../redis.conf

然后启动客户端,启动之后ping会提示需要授权。

auth “Redis123”    //授权带上密码返回ok说明成功,此时再ping就返回pong

数据结构 

map

set key value 设置key 和 对应的value值

例子:set user:name "zhangsan"

get key 返回value

例子:get user:name

mget 可以带多个key 空格分开,返回对应的value值。

例子:mget user:name user:age

对于数字类型的数据

可以对key的value进行减少/增加num 

decrby/incrby key num

可以对key的value进行添加num(带小数点),负数代表减去。

incrbyfloat key num

keys

可以查看多个以某字母开头的key。

例子:keys user:*   //通配符*代表n个未知字符,?代表一个未知字符

 keys *                //可以查所以的key

 删除key。返回1表示删除成功,0则表示失败

 del key

判断key是否存在,返回1 表示存在,0则不存在 

exusts key

List

一个key代表一个List集合

redis中list类似于java中的集合LidnkedList,通过链表来完成,添加元素快,查找速度慢。

添加元素

//在链表尾部(右边)插入多个value值。

rpush key ..value

//在链表头部(左边)插入多个value值。

lpush key ..value 

查询key对应start到end之间的元素,从左到右,从0开始

lrange key start end

取出元素

//表示从尾部(右边)取出num个元素,如果不指定num默认取出一个,返回取出的value值。

rpop key num

//表示从头部(左边)取出num个元素,同上

lpop key num

//表示返回List 集合的长度

llen key

应用:

消息服务:通过rpush添加消息,其他人rpop读取消息。

Redis提供了一个带阻塞带pop命令,如果读取List为空时,会进入等待状态,直到列表有元素,或者指定带时间到期。

brpop key timeout        //timeout代表等待时间,如果list为空,且经过timeout时间还是没有获取到元素,则返回nil,如果设置timeout为0,则会一直等待,直到获取到list中到元素,可以在另外一个终端对list中的元素进行添加。

brpop key timeout        //从头部(左边)取元素,如果list为空进入等待状态,同上。

Hash

类似java中的hashmap,一个key代表一个hashmap,允许存放多个key-value

hset key field ,value 给一个key设置一个字段值,如果存在,则覆盖,返回1代表成功,0则失败。

hget key filed ,//返回对应的value,不存在返回nil

hexists key filed ,//判断指定的key是否存在字段filed,存在返回1,否则0

hkeys key ,返回key所有的字段

hgetall key,返回key所有的字段和字段值

hdel key field 删除key中的field字段,可以删除多个字段,用空格分开。

hincby key field num 对key对应的field字段的数字类型value进行加减num

hincbyfloat key field num 对key对应的field字段的数字类型value进行浮点数加减num

Set

类似java中的Set,存放不重复的元素,一个key代表一个Set

向key集合添加元素member,可以添加多个,使用空格分开

sadd key member 

向key集合删除元素member,可以删除多个,使用空格分开

srem key member 

返回key集合中的所有元素

smember key 

返回key1集合和key2集合中的共同元素

sinter key1 key2 

将key2集合和key3集合的交集放到key1中

sinterstore key1 key2 key3 

返回两个集合的并集

sunion key1 key2 

将key2集合和key3集合的并集放到key1中

sunionstore key1 key2 key3 

Pub/Sub

提供了一个简单消息服务,redis客户端订阅一个频道叫做subscribe,其他客户端向这个频道发送消息叫做publish,订阅频道的客户端,能接受到其他客户端发送的消息。

订阅频道,返回值为频道信息,还有频道的订阅数

subscribe news 

向频道发送消息,订阅的客户端能收到message消息。返回值为订阅频道的客户端数 

publish news “message”

一个终端进行订阅一个频道,另一个终端进行发送信息,可以看到订阅方能收到发送方的消息。

psubscribe news.*   

//通配符

news.*表示所有以news.开通的频道,

news-?代表一个字符,可以订阅news-1,news-2,news-3频道

news[123]表示news-1,news-2,news-3

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值