欢迎投稿

今日深度:

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

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


Redis的安装及启动

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

Redis是c语言开发的。

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

安装步骤:

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

第二步:解压缩redis。

[html] view plain copy
  1. tar zxvf redis-3.0.0.tar.gz   

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

[html] view plain copy
  1. root@localhost ~]# cd redis-3.0.0  
  2. [root@localhost redis-3.0.0]# ll  
  3. 总用量 136  
  4. -rw-rw-r--.  1 root root 25890 Apr  1  2015 00-RELEASENOTES  
  5. -rw-rw-r--.  1 root root    53 Apr  1  2015 BUGS  
  6. -rw-rw-r--.  1 root root  1439 Apr  1  2015 CONTRIBUTING  
  7. -rw-rw-r--.  1 root root  1487 Apr  1  2015 COPYING  
  8. drwxrwxr-x.  6 root root   107 Apr  1  2015 deps  
  9. -rw-rw-r--.  1 root root    11 Apr  1  2015 INSTALL  
  10. -rw-rw-r--.  1 root root   151 Apr  1  2015 Makefile  
  11. -rw-rw-r--.  1 root root  4223 Apr  1  2015 MANIFESTO  
  12. -rw-rw-r--.  1 root root  5201 Apr  1  2015 README  
  13. -rw-rw-r--.  1 root root 41403 Apr  1  2015 redis.conf  
  14. -rwxrwxr-x.  1 root root   271 Apr  1  2015 runtest  
  15. -rwxrwxr-x.  1 root root   280 Apr  1  2015 runtest-cluster  
  16. -rwxrwxr-x.  1 root root   281 Apr  1  2015 runtest-sentinel  
  17. -rw-rw-r--.  1 root root  7109 Apr  1  2015 sentinel.conf  
  18. drwxrwxr-x.  2 root root  4096 Apr  1  2015 src  
  19. drwxrwxr-x. 10 root root   167 Apr  1  2015 tests  
  20. drwxrwxr-x.  5 root root  4096 Apr  1  2015 utils  
[html] view plain copy
  1. root@localhost redis-3.0.0]# make  

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

[java] view plain copy
  1. [root@localhost redis-3.0.0]# make install PREFIX=/usr/local/redis  
  2. //由于不是config配置的,所以需要指定安装文件夹,如果没有redis文件夹,会自动创建并安装  

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

[html] view plain copy
  1. [root@localhost redis-3.0.0]# cd /usr/local/redis/  
  2. [root@localhost redis]# ll  
  3. 总用量 0  
  4. drwxr-xr-x. 2 root root 135 Jan 10 14:46 bin  
  5. [root@localhost redis]# cd bin  
  6. [root@localhost bin]# ll  
  7. 总用量 8492  
  8. -rwxr-xr-x. 1 root root 2075096 Jan 10 14:46 redis-benchmark  
  9. -rwxr-xr-x. 1 root root   25208 Jan 10 14:46 redis-check-aof  
  10. -rwxr-xr-x. 1 root root   56056 Jan 10 14:46 redis-check-dump  
  11. -rwxr-xr-x. 1 root root 2199256 Jan 10 14:46 redis-cli  
  12. lrwxrwxrwx. 1 root root      12 Jan 10 14:46 redis-sentinel -> redis-server  
  13. -rwxr-xr-x. 1 root root 4330968 Jan 10 14:46 redis-server  
  14. [root@localhost bin]# ./redis-server  
后端启动模式: 需要配置文件

将配置文件复制到安装目录下 cp redis.conf /usr/local/redis/binxiu 命令

[java] view plain copy
  1. root@localhost ~]# cd redis-3.0.0  
  2. [root@localhost redis-3.0.0]# ll  
  3. 总用量 144  
  4. -rw-rw-r--.  1 root root 25890 Apr  1  2015 00-RELEASENOTES  
  5. -rw-rw-r--.  1 root root    53 Apr  1  2015 BUGS  
  6. -rw-rw-r--.  1 root root  1439 Apr  1  2015 CONTRIBUTING  
  7. -rw-rw-r--.  1 root root  1487 Apr  1  2015 COPYING  
  8. drwxrwxr-x.  6 root root   175 Jan 10 14:41 deps  
  9. -rw-rw-r--.  1 root root    11 Apr  1  2015 INSTALL  
  10. -rw-rw-r--.  1 root root   151 Apr  1  2015 Makefile  
  11. -rw-rw-r--.  1 root root  4223 Apr  1  2015 MANIFESTO  
  12. -rw-rw-r--.  1 root root  5201 Apr  1  2015 README  
  13. -rw-rw-r--.  1 root root 41403 Apr  1  2015 redis.conf  
  14. -rwxrwxr-x.  1 root root   271 Apr  1  2015 runtest  
  15. -rwxrwxr-x.  1 root root   280 Apr  1  2015 runtest-cluster  
  16. -rwxrwxr-x.  1 root root   281 Apr  1  2015 runtest-sentinel  
  17. -rw-rw-r--.  1 root root  7109 Apr  1  2015 sentinel.conf  
  18. drwxrwxr-x.  2 root root  8192 Jan 10 14:41 src  
  19. drwxrwxr-x. 10 root root   167 Apr  1  2015 tests  
  20. drwxrwxr-x.  5 root root  4096 Apr  1  2015 utils  
  21. [root@localhost redis-3.0.0]# cp redis.conf /usr/local/redis/binxiu  
修改配置文件,将文件中daemonize no 的no改为yes

[html] view plain copy
  1. [root@localhost redis-3.0.0]# cd /usr/local/redis/bin  
  2. root@localhost bin]# vim redis.conf  
[html] view plain copy
  1. 启动 root@localhost bin]# ./redis-server redis.conf  
第六步: 关闭redis,查看进程关闭,kill+进程号 属于正常关闭,也可以在redis文件目录下执行 ./redis-cli shutdown

[html] view plain copy
  1. [root@localhost bin]# ps aux|grep redis  
  2. root      10528  0.1  0.4 140836  4056 ?        Ssl  15:06   0:00 ./redis-server *:6379  
  3. root      10543  0.0  0.1 112668  1004 pts/1    R+   15:08   0:00 grep --color=auto redis  
  4. [root@localhost bin]# kill 10528  

   Redis-cli

[html] view plain copy
  1. [root@localhost bin]# ./redis-cli   
  2. 默认连接localhost运行在6379端口的redis服务。  
  3. [root@localhost bin]# ./redis-cli -h 192.168.25.153 -p 6379  
  4. -h:连接的服务器的地址  
  5. -p:服务的端口号  
  6.   
  7. 关闭redis:[root@localhost bin]# ./redis-cli shutdown  

Redis数据类型常用的命令

[html] view plain copy
  1. String:key-value(做缓存)  
  2. Redis中所有的数据都是字符串。命令不区分大小写,key是区分大小写的。Redis是单线程的。Redis中不适合保存内容大的数据。  

  3. set key val
  4. get key 
  5. incr key:在原来的值上加一(注意这里数据类型必须为整数,字母什么的会报异常)
  6. Decr key:减一  
  7. (使用场景:生成id)  
  8.   
  9. Hash:key fields values(做缓存)  
  10. 存: hset hash1 fileld1 value    
  11. 取值: hget hash1 filed1  
  12. 只取值不要key: hvals hash1  
  13. 查看所有的key: hkeys hash1  
  14. 既查看key又显示val:  hgetall hash1  
  15. 删除数据:  hdel hash1 key  

  16. 相当于一个key对于一个map,map中还有key-value  
  17. 使用hash对key进行归类。  
  18. Hset:向hash中添加内容  
  19. Hget:从hash中取内容  
  20.   
  21. List做数据缓存 
  22. List:有顺序可重复,适合做排队的处理,进程依次处理,取出数据后在list里面就不存在此条数据  
  23. //从左开始添加  
  24. 192.168.25.153:6379> lpush list1 a b c d  
  25. (integer) 4   显示效果为:d c b a

  26. //从右开始添加  
  27. 192.168.25.153:6379> rpush list1 1 2 3 4  
  28. (integer) 8 显示效果为:1 2 3 4
  29.   
  30. //查看:取全部元素  从0到-1(-1即没有了)
  31. 192.168.25.153:6379> lrange list1 0 -1  
  32. 1) "d"  
  33. 2) "c"  
  34. 3) "b"  
  35. 4) "a"  
  36. 5) "1"  
  37. 6) "2"  
  38. 7) "3"  
  39. 8) "4"  

  40. //取出左边第一个元素   lpop key ,取完数据就不存在(取值跟查的区别)
  41. 192.168.25.153:6379> lpop list1   
  42. "d"  
  43. //取出右边第一个元素,取完数据就不存在  
  44. 192.168.25.153:6379> lrange list1 0 -1  
  45. 1) "c"  
  46. 2) "b"  
  47. 3) "a"  
  48. 4) "1"  
  49. 5) "2"  
  50. 6) "3"  
  51. 7) "4"  
  52. 192.168.25.153:6379> rpop list1  
  53. "4"  
  54. 192.168.25.153:6379> lrange list1 0 -1  
  55. 1) "c"  
  56. 2) "b"  
  57. 3) "a"  
  58. 4) "1"  
  59. 5) "2"  
  60. 6) "3"  
  61. 192.168.25.153:6379>   
  62.   

  63. Set:元素无顺序,不能重复 ,要是有重复的就会被过滤掉
  64. 192.168.25.153:6379> sadd set1 a b c c c d  
  65. (integer) 4  
  66. //查询  
  67. 192.168.25.153:6379> smembers set1  
  68. 1) "b"  
  69. 2) "c"  
  70. 3) "d"  
  71. 4) "a"  
  72. //删除命令:srem set1 a
  1. 192.168.25.153:6379> srem set1 a  
  2. (integer) 1  
  3. 192.168.25.153:6379> smembers set1  
  4. 1) "b"  
  5. 2) "c"  
  6. 3) "d"  
  7. 192.168.25.153:6379>   
  8. 还有集合运算命令,自学。  
  9. //取AB集合差集,取A特有的 sdiff A B AB集合差集,取A特有的,反之同理
  10. //取AB集合交集,取AB有共的 sinter A B 
  11. //取AB集合并集,取AB有所的 sunion seta setb 

  12.   
  13. SortedSet(zset):元素有顺序,不能重复,消耗运行内存  (不推荐使用)
  14. //添加  
  15. 192.168.25.153:6379> zadd zset1 2 a 5 b 1 c 6 d  
  16. (integer) 4  
  17. //查询  
  18. 192.168.25.153:6379> zrange zset1 0 -1   //会根据KEY排序
  19. 1) "c"  
  20. 2) "a"  
  21. 3) "b"  
  22. 4) "d"  
  23. //删除  
  24. 192.168.25.153:6379> zrem zset1 a  
  25. (integer) 1  
  26. //升序排列 (默认) 
  27. 192.168.25.153:6379> zrange zset1 0 -1  
  28. 1) "c"  
  29. 2) "b"  
  30. 3) "d"  
  31. //降序排列  
  32. 192.168.25.153:6379> zrevrange zset1 0 -1  
  33. 1) "d"  
  34. 2) "b"  
  35. 3) "c"  
  36. 192.168.25.153:6379> zrange zset1 0 -1 withscores  //升序显示KEY跟VALS的信息
  37. 1) "c"  
  38. 2) "1"  
  39. 3) "b"  
  40. 4) "5"  
  41. 5) "d"  
  42. 6) "6"  
  43. //将元素跟分数一起取  (降序)
  44. 192.168.25.153:6379> zrevrange zset1 0 -1 withscores  
  45. 1) "d"  
  46. 2) "6"  
  47. 3) "b"  
  48. 4) "5"  
  49. 5) "c"  
  50. 6) "1"  


设置Key过期时间的命令

[html] view plain copy
  1.   
  2. 设置(重置)key的过期时间:Expire key 100  (即key再100秒之后删掉)
  3. 查看key的有效存活时间期  :Ttl key
  4. 清除key的过期时间,Key持久化(即把key值重新设置为-1状态):   Persist key
  5.   
  6. 192.168.25.153:6379> expire set1 100  
  7. (integer) 1  
  8. //查询到期时间 -1为永久保存,持久化 当小于-1(如-2)时表示不存在    

 Redis的持久化方案

[html] view plain copy
  1. Redis的所有数据都是保存到内存中的。  
  2. Rdb:快照形式,定期把内存中当前时刻的数据保存到磁盘。Redis默认支持的持久化方案。  
  3. aof形式:append only file。把所有对redis数据库操作的命令,增删改操作的命令。保存到文件中。数据库恢复时把所有的命令执行一遍即可。  
  4.   
  5. 在redis.conf配置文件中配置。  
  6. Rdb:  (默认)
  7. save 900 1 在900秒之内有1个key发生了改变就保存一次
  8. save 300 10 在300秒之内有10个key发生了改变就保存一次
  9. save 60 10000 在60秒之内有10000个key发生了改变就保存一次


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

  2. appendonly no(yes)  关闭或者开启,所有命令会放到appendonly.aof文件里面(bin目录下)
  1. cat appendonly.aof 查看该文件的内容   
  2. 当两种持久化方案同时开启使用aof文件来恢复数据库。  

www.htsjk.Com true http://www.htsjk.com/redis/30961.html NewsArticle 虚拟机安装redis 以及 redis五种数据类型 key命令(过期时间) redis持久化方案 教科书笔记,rediskey Redis的安装及启动 redis安装包链接:https://pan.baidu.com/s/1jJbmyW2 密码:ccg0 Redis是c语言开发的...
相关文章
    暂无相关文章
评论暂时关闭