您的位置:首页 > 数据库 > Redis

虚拟机安装redis 以及 redis五种数据类型 key命令(过期时间) redis持久化方案 教科书笔记

2018-01-12 10:20 1071 查看


Redis的安装及启动

redis安装包链接:https://pan.baidu.com/s/1jJbmyW2 密码:ccg0

Redis是c语言开发的。

安装redis需要c语言的编译环境。如果没有gcc需要在线安装。yuminstall gcc-c++ 

安装步骤:

第一步:redis的源码包上传到linux系统。

第二步:解压缩redis。

[html] view
plain copy

tar zxvf redis-3.0.0.tar.gz   

第三步:编译。进入redis源码目录。make

[html] view
plain copy

root@localhost ~]# cd redis-3.0.0  

[root@localhost redis-3.0.0]# ll  

总用量 136  

-rw-rw-r--.  1 root root 25890 Apr  1  2015 00-RELEASENOTES  

-rw-rw-r--.  1 root root    53 Apr  1  2015 BUGS  

-rw-rw-r--.  1 root root  1439 Apr  1  2015 CONTRIBUTING  

-rw-rw-r--.  1 root root  1487 Apr  1  2015 COPYING  

drwxrwxr-x.  6 root root   107 Apr  1  2015 deps  

-rw-rw-r--.  1 root root    11 Apr  1  2015 INSTALL  

-rw-rw-r--.  1 root root   151 Apr  1  2015 Makefile  
1e92c

-rw-rw-r--.  1 root root  4223 Apr  1  2015 MANIFESTO  

-rw-rw-r--.  1 root root  5201 Apr  1  2015 README  

-rw-rw-r--.  1 root root 41403 Apr  1  2015 redis.conf  

-rwxrwxr-x.  1 root root   271 Apr  1  2015 runtest  

-rwxrwxr-x.  1 root root   280 Apr  1  2015 runtest-cluster  

-rwxrwxr-x.  1 root root   281 Apr  1  2015 runtest-sentinel  

-rw-rw-r--.  1 root root  7109 Apr  1  2015 sentinel.conf  

drwxrwxr-x.  2 root root  4096 Apr  1  2015 src  

drwxrwxr-x. 10 root root   167 Apr  1  2015 tests  

drwxrwxr-x.  5 root root  4096 Apr  1  2015 utils  

[html] view
plain copy

root@localhost redis-3.0.0]# make  

第四步:安装。make install PREFIX=/usr/local/redis    PREFIX(这里必须大写)参数指定redis的安装目录。一般软件安装到/usr目录下

[java] view
plain copy

[root@localhost redis-3.0.0]# make install PREFIX=/usr/local/redis  

//由于不是config配置的,所以需要指定安装文件夹,如果没有redis文件夹,会自动创建并安装  

第五步: 启动redis(前端启动模式-----会占用终端界面)

[html] view
plain copy

[root@localhost redis-3.0.0]# cd /usr/local/redis/  

[root@localhost redis]# ll  

总用量 0  

drwxr-xr-x. 2 root root 135 Jan 10 14:46 bin  

[root@localhost redis]# cd bin  

[root@localhost bin]# ll  

总用量 8492  

-rwxr-xr-x. 1 root root 2075096 Jan 10 14:46 redis-benchmark  

-rwxr-xr-x. 1 root root   25208 Jan 10 14:46 redis-check-aof  

-rwxr-xr-x. 1 root root   56056 Jan 10 14:46 redis-check-dump  

-rwxr-xr-x. 1 root root 2199256 Jan 10 14:46 redis-cli  

lrwxrwxrwx. 1 root root      12 Jan 10 14:46 redis-sentinel -> redis-server  

-rwxr-xr-x. 1 root root 4330968 Jan 10 14:46 redis-server  

[root@localhost bin]# ./redis-server  

后端启动模式: 需要配置文件

将配置文件复制到安装目录下

cp redis.conf /usr/local/redis/binxiu 命令

[java] view
plain copy

root@localhost ~]# cd redis-3.0.0  

[root@localhost redis-3.0.0]# ll  

总用量 144  

-rw-rw-r--.  1 root root 25890 Apr  1  2015 00-RELEASENOTES  

-rw-rw-r--.  1 root root    53 Apr  1  2015 BUGS  

-rw-rw-r--.  1 root root  1439 Apr  1  2015 CONTRIBUTING  

-rw-rw-r--.  1 root root  1487 Apr  1  2015 COPYING  

drwxrwxr-x.  6 root root   175 Jan 10 14:41 deps  

-rw-rw-r--.  1 root root    11 Apr  1  2015 INSTALL  

-rw-rw-r--.  1 root root   151 Apr  1  2015 Makefile  

-rw-rw-r--.  1 root root  4223 Apr  1  2015 MANIFESTO  

-rw-rw-r--.  1 root root  5201 Apr  1  2015 README  

-rw-rw-r--.  1 root root 41403 Apr  1  2015 redis.conf  

-rwxrwxr-x.  1 root root   271 Apr  1  2015 runtest  

-rwxrwxr-x.  1 root root   280 Apr  1  2015 runtest-cluster  

-rwxrwxr-x.  1 root root   281 Apr  1  2015 runtest-sentinel  

-rw-rw-r--.  1 root root  7109 Apr  1  2015 sentinel.conf  

drwxrwxr-x.  2 root root  8192 Jan 10 14:41 src  

drwxrwxr-x. 10 root root   167 Apr  1  2015 tests  

drwxrwxr-x.  5 root root  4096 Apr  1  2015 utils  

[root@localhost redis-3.0.0]# cp redis.conf /usr/local/redis/binxiu  

修改配置文件,将文件中daemonize no 的no改为yes

[html] view
plain copy

[root@localhost redis-3.0.0]# cd /usr/local/redis/bin  

root@localhost bin]# vim redis.conf  

[html] view
plain copy

启动 root@localhost bin]# ./redis-server redis.conf  

第六步: 关闭redis,查看进程关闭,kill+进程号 属于正常关闭,也可以在redis文件目录下执行 ./redis-cli shutdown

[html] view
plain copy

[root@localhost bin]# ps aux|grep redis  

root      10528  0.1  0.4 140836  4056 ?        Ssl  15:06   0:00 ./redis-server *:6379  

root      10543  0.0  0.1 112668  1004 pts/1    R+   15:08   0:00 grep --color=auto redis  

[root@localhost bin]# kill 10528  


 
 Redis-cli

[html] view
plain copy

[root@localhost bin]# ./redis-cli   

默认连接localhost运行在6379端口的redis服务。  

[root@localhost bin]# ./redis-cli -h 192.168.25.153 -p 6379  

-h:连接的服务器的地址  

-p:服务的端口号  

  

关闭redis:[root@localhost bin]# ./redis-cli shutdown  


Redis数据类型常用的命令

[html] view
plain copy

String:key-value(做缓存)  

Redis中所有的数据都是字符串。命令不区分大小写,key是区分大小写的。Redis是单线程的。Redis中不适合保存内容大的数据。  

set key val

get key 

incr

key:在原来的值上加一(注意这里数据类型必须为整数,字母什么的会报异常)

Decr key:减一  

(使用场景:生成id)  

  

Hash:key fields values(做缓存)  

存:
hset hash1 fileld1 value    

取值:
hget hash1 filed1  

只取值不要key:
hvals hash1  

查看所有的key:
hkeys hash1  

既查看key又显示val:  hgetall hash1  

删除数据:  hdel hash1 key  

相当于一个key对于一个map,map中还有key-value  

使用hash对key进行归类。  

Hset:向hash中添加内容  

Hget:从hash中取内容  

  

List做数据缓存 

List:有顺序可重复,适合做排队的处理,进程依次处理,取出数据后在list里面就不存在此条数据  

//从左开始添加  

192.168.25.153:6379> lpush list1 a b c d  

(integer) 4  
显示效果为:d c b a

//从右开始添加  

192.168.25.153:6379> rpush list1 1 2 3 4  

(integer) 8

显示效果为:1 2 3 4

  

//查看:取全部元素  从0到-1(-1即没有了)

192.168.25.153:6379> lrange list1 0 -1  

1) "d"  

2) "c"  

3) "b"  

4) "a"  

5) "1"  

6) "2"  

7) "3"  

8) "4"  

//取出左边第一个元素   lpop key ,取完数据就不存在(取值跟查的区别)

192.168.25.153:6379> lpop list1   

"d"  

//取出右边第一个元素,取完数据就不存在  

192.168.25.153:6379> lrange list1 0 -1  

1) "c"  

2) "b"  

3) "a"  

4) "1"  

5) "2"  

6) "3"  

7) "4"  

192.168.25.153:6379> rpop list1  

"4"  

192.168.25.153:6379> lrange list1 0 -1  

1) "c"  

2) "b"  

3) "a"  

4) "1"  

5) "2"  

6) "3"  

192.168.25.153:6379>   

  

Set:元素无顺序,不能重复 ,要是有重复的就会被过滤掉

192.168.25.153:6379> sadd set1 a b c c c d  

(integer) 4  

//查询  

192.168.25.153:6379> smembers set1  

1) "b"  

2) "c"  

3) "d"  

4) "a"  

//删除命令:srem set1 a

192.168.25.153:6379> srem set1 a  

(integer) 1  

192.168.25.153:6379> smembers set1  

1) "b"  

2) "c"  

3) "d"  

192.168.25.153:6379>   

还有集合运算命令,自学。  

//取AB集合差集,取A特有的 sdiff A B AB集合差集,取A特有的,反之同理

//取AB集合交集,取AB有共的 sinter A B 

//取AB集合并集,取AB有所的 sunion seta setb 

  

SortedSet(zset):元素有顺序,不能重复,消耗运行内存  (不推荐使用)

//添加  

192.168.25.153:6379> zadd zset1 2 a 5 b 1 c 6 d  

(integer) 4  

//查询  

192.168.25.153:6379> zrange zset1 0 -1  
//会根据KEY排序

1) "c"  

2) "a"  

3) "b"  

4) "d"  

//删除  

192.168.25.153:6379> zrem zset1 a  

(integer) 1  

//升序排列 (默认) 

192.168.25.153:6379> zrange zset1 0 -1  

1) "c"  

2) "b"  

3) "d"  

//降序排列  

192.168.25.153:6379> zrevrange zset1 0 -1  

1) "d"  

2) "b"  

3) "c"  

192.168.25.153:6379> zrange zset1 0 -1 withscores 
//升序显示KEY跟VALS的信息

1) "c"  

2) "1"  

3) "b"  

4) "5"  

5) "d"  

6) "6"  

//将元素跟分数一起取  (降序)

192.168.25.153:6379> zrevrange zset1 0 -1 withscores  

1) "d"  

2) "6"  

3) "b"  

4) "5"  

5) "c"  

6) "1"  



设置Key过期时间的命令

[html] view
plain copy

  

设置(重置)key的过期时间:Expire key
100  (即key再100秒之后删掉)

查看key的有效存活时间期  :Ttl key

清除key的过期时间,Key持久化(即把key值重新设置为-1状态): 
 Persist key

  

192.168.25.153:6379> expire set1 100  

(integer) 1  

//查询到期时间 -1为永久保存,持久化
当小于-1(如-2)时表示不存在    


 Redis的持久化方案

[html] view
plain copy

Redis的所有数据都是保存到内存中的。  

Rdb:快照形式,定期把内存中当前时刻的数据保存到磁盘。Redis默认支持的持久化方案。  

aof形式:append only file。把所有对redis数据库操作的命令,增删改操作的命令。保存到文件中。数据库恢复时把所有的命令执行一遍即可。  

  

在redis.conf配置文件中配置。  

Rdb:  (默认)

save 900 1
在900秒之内有1个key发生了改变就保存一次

save 300 10
在300秒之内有10个key发生了改变就保存一次

save 60 10000
在60秒之内有10000个key发生了改变就保存一次

[html] view
plain copy

Aof的配置:  (另一套持久化方案,默认不开启,因为开启配置会频繁的操作磁盘,每秒钟同步保存一次,这样性能就会有所下降,如果对数据库完整性比较高的话可以开启) 

appendonly
no(yes)  关闭或者开启,所有命令会放到appendonly.aof文件里面(bin目录下)

cat appendonly.aof 查看该文件的内容 
 

当两种持久化方案同时开启使用aof文件来恢复数据库。  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: