Redis安装启动使用

1.下载redis

下载链接:https://redis.io/download

下载后使用 tar xcf 文件名来解压,加压后进入文件,然后使用make命令,我执行make命令后,提示没有make,linux系统是ubuntu,apt-get install make,安装make,然后发现有大量报错,有一条是 cc: not found,查找相关资料,系统缺少gcc,使用apt-get install gcc安装,继续执行make ,还是大量报错, fatal error: jemalloc/jemalloc.h: No such file or directory

 #include <jemalloc/jemalloc.h>,查找相关资料,原因是jemalloc重载了Linux下的ANSI C的malloc和free函数。解决办法:make时添加参数,make MALLOC=libc,执行完成后,发现Hint: It's a good idea to run 'make test' ;)提示,然后执行make test,提示You need tcl 8.5 or newer in order to run the Redis test,然后执行apt-get install tcl,再次运行make test正常解释,至此,安装完成

2.启动ridis

cd进redis文件夹的src目录下,执行./redis-server,服务启动, 页面停留在Ready to accept connections,查找相关资料发现redis默认为非守护线程运行,也就是非后台,需要修改配置文件启动。

配置文件位置:redis目录下 redis.conf,vi redis.conf 命令打开,,将这里改成yes,

然后使用  ./redis-server ../redis.conf命令启动,

使用ps -ef|grep redis命令查看是否启动,

客户端启动:

 ./redis-cli命令启动本地客户端

set命令用来设置key、value

通过客户端来关闭redis服务端

127.0.0.1:6379> shutdown 

Redis特性:

redis是开源的高性能的key-value数据库

redis支持将内存中的数据保存到磁盘,可以再重启后再次使用

redis数据类型(5种):

1.String,字符串,是二进制安全的,操作:

SET name "runoob""runoob"
GET name
"runoob""runoob"

2.Hash,哈希,操作:

 

redis> HMSET myhash field1 "Hello" field2 "World"
"OK"
redis> HGET myhash field1
"Hello"
redis> HGET myhash field2
"World"> HMSET myhash field1 "Hello" field2 "World"
"OK"
redis> HGET myhash field1
"Hello"
redis> HGET myhash field2
"World"

 

3.list,String列表,按照插入顺序排序,操作:

 

 

edis 127.0.0.1:6379> lpush runoob redis
(integer) 1
redis 127.0.0.1:6379> lpush runoob mongodb
(integer) 2
redis 127.0.0.1:6379> lpush runoob rabitmq
(integer) 3
redis 127.0.0.1:6379> lrange runoob 0 10
1) "rabitmq"
2) "mongodb"
3) "redis"
redis 127.0.0.1:6379>127.0.0.1:6379> lpush runoob redis
(integer) 1
redis 127.0.0.1:6379> lpush runoob mongodb
(integer) 2
redis 127.0.0.1:6379> lpush runoob rabitmq
(integer) 3
redis 127.0.0.1:6379> lrange runoob 0 10
1) "rabitmq"
2) "mongodb"
3) "redis"
redis 127.0.0.1:6379>

 

4.set,String集合,操作:

 

 

redis 127.0.0.1:6379> sadd runoob redis
(integer) 1
redis 127.0.0.1:6379> sadd runoob mongodb
(integer) 1
redis 127.0.0.1:6379> sadd runoob rabitmq
(integer) 1
redis 127.0.0.1:6379> sadd runoob rabitmq
(integer) 0
redis 127.0.0.1:6379> smembers runoob

1) "redis"
2) "rabitmq"
3) "mongodb"127.0.0.1:6379> sadd runoob redis
(integer) 1
redis 127.0.0.1:6379> sadd runoob mongodb
(integer) 1
redis 127.0.0.1:6379> sadd runoob rabitmq
(integer) 1
redis 127.0.0.1:6379> sadd runoob rabitmq
(integer) 0
redis 127.0.0.1:6379> smembers runoob

1) "redis"
2) "rabitmq"
3) "mongodb"

 

5.zset(sorted set),String有序集合,操作:

 

 

redis 127.0.0.1:6379> zadd runoob 0 redis
(integer) 1
redis 127.0.0.1:6379> zadd runoob 0 mongodb
(integer) 1
redis 127.0.0.1:6379> zadd runoob 0 rabitmq
(integer) 1
redis 127.0.0.1:6379> zadd runoob 0 rabitmq
(integer) 0
redis 127.0.0.1:6379> > ZRANGEBYSCORE runoob 0 1000
1) "mongodb"
2) "rabitmq"
3) "redis"127.0.0.1:6379> zadd runoob 0 redis
(integer) 1
redis 127.0.0.1:6379> zadd runoob 0 mongodb
(integer) 1
redis 127.0.0.1:6379> zadd runoob 0 rabitmq
(integer) 1
redis 127.0.0.1:6379> zadd runoob 0 rabitmq
(integer) 0
redis 127.0.0.1:6379> > ZRANGEBYSCORE runoob 0 1000
1) "mongodb"
2) "rabitmq"
3) "redis"

 

注意:

 

key,不能太长,尽量不要超过1024字节

Redis数据持久化:

1.RDB:将数据快照保存在磁盘中

2.AOF:将执行过的命令保存下来,下载启动时将命令重新执行一次,数据一直是追加,当文件到达阈值时,会对文件进行重写

Redis事务机制:

 

Redis 事务可以一次执行多个命令, 并且带有以下两个重要的保证:

  • 批量操作在发送 EXEC 命令前被放入队列缓存。
  • 收到 EXEC 命令后进入事务执行,事务中任意命令执行失败,其余的命令依然被执行。
  • 在事务执行过程,其他客户端提交的命令请求不会插入到事务执行命令序列中。

一个事务从开始到执行会经历以下三个阶段:

  • 开始事务。
  • 命令入队。
  • 执行事务。

MULTI :开始事务

EXEC  :  执行事务

redis命令是原子性,但是redis事务不是原子性,不会回滚

 

redis 127.0.0.1:7000> multi
OK
redis 127.0.0.1:7000> set a aaa
QUEUED
redis 127.0.0.1:7000> set b bbb
QUEUED
redis 127.0.0.1:7000> set c ccc
QUEUED
redis 127.0.0.1:7000> exec127.0.0.1:7000> multi
OK
redis 127.0.0.1:7000> set a aaa
QUEUED
redis 127.0.0.1:7000> set b bbb
QUEUED
redis 127.0.0.1:7000> set c ccc
QUEUED
redis 127.0.0.1:7000> exec

https://promotion.aliyun.com/ntms/act/enterprise-discount.html?userCode=1qylypgj

【助力企业上云】性能级主机2-5折

阿里云活动,服务器便宜卖哦,通过此链接注册购买,可联系作者协助部署搭建服务器环境。QQ(814341142)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值