缓存Redis

Redis简介

Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
缓存:在内存中
作用:提升访问速率
环境说明

主机名IP
localhost192.168.175.150
下载Redis并解压
[root@localhost ~]# ls
anaconda-ks.cfg  redis-6.0.6.tar.gz
[root@localhost ~]# tar xf redis-6.0.6.tar.gz 
[root@localhost ~]# ls
anaconda-ks.cfg  redis-6.0.6  redis-6.0.6.tar.gz

安装编译工具
[root@localhost ~]# yum -y install gcc gcc-c++

直接make编译
[root@localhost redis-6.0.6]# make

此时会发现报错
在这里插入图片描述
解决方法:升级编译器的版本,因为gcc版本一定要5.3以上

查看gcc版本
[root@localhost redis-6.0.6]# gcc -v
使用内建 specs。
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/4.8.5/lto-wrapper
目标:x86_64-redhat-linux
配置为:../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-linker-hash-style=gnu --enable-languages=c,c++,objc,obj-c++,java,fortran,ada,go,lto --enable-plugin --enable-initfini-array --disable-libgcj --with-isl=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/isl-install --with-cloog=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/cloog-install --enable-gnu-indirect-function --with-tune=generic --with-arch_32=x86-64 --build=x86_64-redhat-linux
线程模型:posix
gcc 版本 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC) 

升级
[root@localhost redis-6.0.6]# yum -y install centos-release-scl && yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils && scl enable devtoolset-9 bash

再查看gcc版本
[root@localhost redis-6.0.6]# gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/opt/rh/devtoolset-9/root/usr/libexec/gcc/x86_64-redhat-linux/9/lto-wrapper
Target: x86_64-redhat-linux
Configured with: ../configure --enable-bootstrap --enable-languages=c,c++,fortran,lto --prefix=/opt/rh/devtoolset-9/root/usr --mandir=/opt/rh/devtoolset-9/root/usr/share/man --infodir=/opt/rh/devtoolset-9/root/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-shared --enable-threads=posix --enable-checking=release --enable-multilib --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-gcc-major-version-only --with-linker-hash-style=gnu --with-default-libstdcxx-abi=gcc4-compatible --enable-plugin --enable-initfini-array --with-isl=/builddir/build/BUILD/gcc-9.3.1-20200408/obj-x86_64-redhat-linux/isl-install --disable-libmpx --enable-gnu-indirect-function --with-tune=generic --with-arch_32=x86-64 --build=x86_64-redhat-linux
Thread model: posix
gcc version 9.3.1 20200408 (Red Hat 9.3.1-2) (GCC) 

删除解压包,重新编译
[root@localhost ~]# rm -rf redis-6.0.6
[root@localhost ~]# tar xf redis-6.0.6.tar.gz 
[root@localhost ~]# ls
anaconda-ks.cfg  redis-6.0.6  redis-6.0.6.tar.gz
[root@localhost ~]# cd redis-6.0.6
[root@localhost redis-6.0.6]# make
[root@localhost redis-6.0.6]# cd /root/redis-6.0.6/src     进入到src,此时已经成功创建redis-cli、redis-server
[root@localhost src]# ls
acl.c              endianconv.o       notify.c           setcpuaffinity.o
acl.d              evict.c            notify.d           setproctitle.c
acl.o              evict.d            notify.o           setproctitle.d
adlist.c           evict.o            object.c           setproctitle.o
adlist.d           expire.c           object.d           sha1.c
adlist.h           expire.d           object.o           sha1.d
adlist.o           expire.o           pqsort.c           sha1.h
ae.c               fmacros.h          pqsort.d           sha1.o
ae.d               geo.c              pqsort.h           sha256.c
ae_epoll.c         geo.d              pqsort.o           sha256.d
ae_evport.c        geo.h              pubsub.c           sha256.h
ae.h               geohash.c          pubsub.d           sha256.o
ae_kqueue.c        geohash.d          pubsub.o           siphash.c
ae.o               geohash.h          quicklist.c        siphash.d
ae_select.c        geohash_helper.c   quicklist.d        siphash.o
anet.c             geohash_helper.d   quicklist.h        slowlog.c
anet.d             geohash_helper.h   quicklist.o        slowlog.d
anet.h             geohash_helper.o   rand.c             slowlog.h
anet.o             geohash.o          rand.d             slowlog.o
aof.c              geo.o              rand.h             solarisfixes.h
aof.d              gopher.c           rand.o             sort.c
aof.o              gopher.d           rax.c              sort.d
asciilogo.h        gopher.o           rax.d              sort.o
atomicvar.h        help.h             rax.h              sparkline.c
bio.c              hyperloglog.c      rax_malloc.h       sparkline.d
bio.d              hyperloglog.d      rax.o              sparkline.h
bio.h              hyperloglog.o      rdb.c              sparkline.o
bio.o              intset.c           rdb.d              stream.h
bitops.c           intset.d           rdb.h              syncio.c
bitops.d           intset.h           rdb.o              syncio.d
bitops.o           intset.o           redisassert.h      syncio.o
blocked.c          latency.c          redis-benchmark    testhelp.h
blocked.d          latency.d          redis-benchmark.c  t_hash.c
blocked.o          latency.h          redis-benchmark.d  t_hash.d
childinfo.c        latency.o          redis-benchmark.o  t_hash.o
childinfo.d        lazyfree.c         redis-check-aof    timeout.c
childinfo.o        lazyfree.d         redis-check-aof.c  timeout.d
cluster.c          lazyfree.o         redis-check-aof.d  timeout.o
cluster.d          listpack.c         redis-check-aof.o  t_list.c
cluster.h          listpack.d         redis-check-rdb    t_list.d
cluster.o          listpack.h         redis-check-rdb.c  t_list.o
config.c           listpack_malloc.h  redis-check-rdb.d  tls.c
config.d           listpack.o         redis-check-rdb.o  tls.d
config.h           localtime.c        redis-cli          tls.o
config.o           localtime.d        redis-cli.c        tracking.c
connection.c       localtime.o        redis-cli.d        tracking.d
connection.d       lolwut5.c          redis-cli.o        tracking.o
connection.h       lolwut5.d          redismodule.h      t_set.c
connection.o       lolwut5.o          redis-sentinel     t_set.d
connhelpers.h      lolwut6.c          redis-server       t_set.o
crc16.c            lolwut6.d          redis-trib.rb      t_stream.c
crc16.d            lolwut6.o          release.c          t_stream.d
crc16.o            lolwut.c           release.d          t_stream.o
crc16_slottable.h  lolwut.d           release.h          t_string.c
crc64.c            lolwut.h           release.o          t_string.d
crc64.d            lolwut.o           replication.c      t_string.o
crc64.h            lzf_c.c            replication.d      t_zset.c
crc64.o            lzf_c.d            replication.o      t_zset.d
crcspeed.c         lzf_c.o            rio.c              t_zset.o
crcspeed.d         lzf_d.c            rio.d              util.c
crcspeed.h         lzf_d.d            rio.h              util.d
crcspeed.o         lzf_d.o            rio.o              util.h
db.c               lzf.h              scripting.c        util.o
db.d               lzfP.h             scripting.d        valgrind.sup
db.o               Makefile           scripting.o        version.h
debug.c            memtest.c          sdsalloc.h         ziplist.c
debug.d            memtest.d          sds.c              ziplist.d
debugmacro.h       memtest.o          sds.d              ziplist.h
debug.o            mkreleasehdr.sh    sds.h              ziplist.o
defrag.c           module.c           sds.o              zipmap.c
defrag.d           module.d           sentinel.c         zipmap.d
defrag.o           module.o           sentinel.d         zipmap.h
dict.c             modules            sentinel.o         zipmap.o
dict.d             multi.c            server.c           zmalloc.c
dict.h             multi.d            server.d           zmalloc.d
dict.o             multi.o            server.h           zmalloc.h
endianconv.c       networking.c       server.o           zmalloc.o
endianconv.d       networking.d       setcpuaffinity.c
endianconv.h       networking.o       setcpuaffinity.d

把客户端和服务端放到/usr/bin位置去
[root@localhost src]# cp redis-cli redis-server /usr/bin/
[root@localhost ~]# which redis-cli
/usr/bin/redis-cli
[root@localhost ~]# which redis-server
/usr/bin/redis-server

启动redis-server
[root@localhost ~]# redis-server
86415:C 12 Aug 2020 21:40:47.005 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
86415:C 12 Aug 2020 21:40:47.005 # Redis version=6.0.6, bits=64, commit=00000000, modified=0, pid=86415, just started
86415:C 12 Aug 2020 21:40:47.005 # Warning: no config file specified, using the default config. In order to specify a config file use redis-server /path/to/redis.conf
86415:M 12 Aug 2020 21:40:47.006 * Increased maximum number of open files to 10032 (it was originally set to 1024).
                _._                                                  
           _.-``__ ''-._                                             
      _.-``    `.  `_.  ''-._           Redis 6.0.6 (00000000/0) 64 bit
  .-`` .-```.  ```\/    _.,_ ''-._                                   
 (    '      ,       .-`  | `,    )     Running in standalone mode
 |`-._`-...-` __...-.``-._|'` _.-'|     Port: 6379
 |    `-._   `._    /     _.-'    |     PID: 86415
  `-._    `-._  `-./  _.-'    _.-'                                   
 |`-._`-._    `-.__.-'    _.-'_.-'|                                  
 |    `-._`-._        _.-'_.-'    |           http://redis.io        
  `-._    `-._`-.__.-'_.-'    _.-'                                   
 |`-._`-._    `-.__.-'    _.-'_.-'|                                  
 |    `-._`-._        _.-'_.-'    |                                  
  `-._    `-._`-.__.-'_.-'    _.-'                                   
      `-._    `-.__.-'    _.-'                                       
          `-._        _.-'                                           
              `-.__.-'                                               

86415:M 12 Aug 2020 21:40:47.009 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
86415:M 12 Aug 2020 21:40:47.009 # Server initialized
86415:M 12 Aug 2020 21:40:47.009 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
86415:M 12 Aug 2020 21:40:47.009 # WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. To fix this issue run the command 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' as root, and add it to your /etc/rc.local in order to retain the setting after a reboot. Redis must be restarted after THP is disabled.
86415:M 12 Aug 2020 21:40:47.010 * Ready to accept connections
[root@localhost ~]# ss -antl        //6379端口号已启动
State      Recv-Q Send-Q Local Address:Port               Peer Address:Port              
LISTEN     0      128             *:6379                        *:*                  
LISTEN     0      128             *:22                          *:*                  
LISTEN     0      100     127.0.0.1:25                          *:*                  
LISTEN     0      128            :::6379                       :::*                  
LISTEN     0      128            :::22                         :::*                  
LISTEN     0      100           ::1:25                         :::*          

连接Redis
[root@localhost ~]# redis-cli

set用法
[root@localhost ~]# redis-cli
127.0.0.1:6379> set a 10    //设置a=10
OK

get用法
127.0.0.1:6379> get a    //获取a的值
"10"
也可以在redis外面设置
[root@localhost ~]# redis-cli get a
"10"
[root@localhost ~]# redis-cli set b 20
OK
[root@localhost ~]# redis-cli get b
"20"

把配置文件放到该放的位置即/etc
[root@localhost ~]# cd redis-6.0.6
[root@localhost redis-6.0.6]# ls
00-RELEASENOTES  deps       README.md        runtest-moduleapi  tests
BUGS             INSTALL    redis.conf       runtest-sentinel   TLS.md
CONTRIBUTING     Makefile   runtest          sentinel.conf      utils
COPYING          MANIFESTO  runtest-cluster  src
[root@localhost redis-6.0.6]# cp redis.conf /etc/

修改配置文件去设置密码
[root@localhost ~]# vim /etc/redis.conf
# IMPORTANT NOTE: starting with Redis 6 "requirepass" is just a compatiblity
# layer on top of the new ACL system. The option effect will be just setting
# the password for the default user. Clients will still authenticate using
# AUTH <password> as usually, or more explicitly with AUTH default <password>
# if they follow the new protocol: both will work.
#
requirepass linux20200812                 //取消#号,并设置密码

把redis放在后台运行,如果后台是开启的需要关闭之后再输入下面命令
[root@localhost ~]# nohup redis-server /etc/redis.conf &
[1] 59743
[root@localhost ~]# nohup: 忽略输入并把输出追加到"nohup.out"
[root@localhost ~]# ss -antl
State      Recv-Q Send-Q Local Address:Port               Peer Address:Port              
LISTEN     0      128     127.0.0.1:6379                        *:*                  
LISTEN     0      128             *:22                          *:*                  
LISTEN     0      100     127.0.0.1:25                          *:*                  
LISTEN     0      128            :::22                         :::*                  
LISTEN     0      100           ::1:25                         :::*             

登录进去此时需要密码
[root@localhost ~]# redis-cli
127.0.0.1:6379> set a 10
(error) NOAUTH Authentication required.  

输入密码登录
127.0.0.1:6379> auth linux20200812
OK

redisx相关命令

APPEND追加一个值到key上
127.0.0.1:6379> APPEND mykey "hello"
(integer) 5
127.0.0.1:6379> APPEND mykey "world"
(integer) 10
127.0.0.1:6379> GET mykey
"helloworld"

AUTH接密码进入redis
127.0.0.1:6379> auth linux20200812
OK

BITCOUNT 统计key字节
127.0.0.1:6379> BITCOUNT mykey
(integer) 44

TIME返回当前服务器时间
127.0.0.1:6379> TIME
1) "1597242301"
2) "424832"

KEYS查看当前有多少key
127.0.0.1:6379> KEYS *
1) "mykey"
127.0.0.1:6379> quit
[root@localhost ~]# 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值