虚拟机安装redis 以及 redis五种数据类型 key命令(过期时间) redis持久化方案 教科书笔记,rediskey
Redis的安装及启动
redis安装包链接:https://pan.baidu.com/s/1jJbmyW2 密码:ccg0Redis是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
- -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
- 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
[html] view plain copy
- [root@localhost redis-3.0.0]# cd /usr/local/redis/bin
- root@localhost bin]# vim redis.conf
- 启动 root@localhost bin]# ./redis-server redis.conf
[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发生了改变就保存一次
-
-
- Aof的配置: (另一套持久化方案,默认不开启,因为开启配置会频繁的操作磁盘,每秒钟同步保存一次,这样性能就会有所下降,如果对数据库完整性比较高的话可以开启)
-
- appendonly no(yes) 关闭或者开启,所有命令会放到appendonly.aof文件里面(bin目录下)
- cat appendonly.aof 查看该文件的内容
- 当两种持久化方案同时开启使用aof文件来恢复数据库。
本站文章为和通数据库网友分享或者投稿,欢迎任何形式的转载,但请务必注明出处.
同时文章内容如有侵犯了您的权益,请联系QQ:970679559,我们会在尽快处理。