Redis是一种高级key-value数据库。它跟memcached类似,不过数据可以持久化,而且支持的数据类型很丰富。有字符串,链表,集 合和有序集合。支持在服务器端计算集合的并,交和补集(difference)等,还支持多种排序功能。所以redis也可以被看成是一个数据结构服务器。
Redis的所有数据都是保存在内存中(效率高),然后不定期的通过异步方式保存到磁盘上(这称为“半持久化模式”);也可以把每一次数据变化都写入到一个append only file(aof)里面(这称为“全持久化模式”)。
1、在线安装最新版本
curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.list sudo apt-get update sudo apt-get install redis
2、离线安装5.0.7版本
源码包
redis-5.0.7.tar.gz
链接: 百度网盘 提取码: 1234
yum -y install gcc gcc-c++ cmake make glibc libx-ml tar -xf redis-5.0.7.tar.gz -C /data/server/ cd /data/server/ mv redis-5.0.7/ redis cd redis make install make test mkdir -p etc bin cd /data/server/redis/src cp -r mkreleasehdr.sh redis-benchmark redis-check-aof redis-check-dump redis-cli redis-sentinel redis-trib.rb redis-server /data/server/redis/bin/ cd /data/server/redis/ cp redis.conf etc/
启动服务
./redis-server /data/redis/etc/redis.conf
3、Redis常用操作
启动redis的时候指定配置文件 [root@ops-fanht-redis-serveretc]# vim /data/redis/etc/redis.conf 把daemonize配置项改为yes daemonize yes [root@ops-fanht-redis-serverbin]# ./redis-server /data/redis/etc/redis.conf 设置redis为后台运行 配置文件信息 1、daemonize 如果需要在后台运行,把该项改为yes 2、pidfile 配置多个pid的地址 默认在/var/run/redis.pid 3、bind 绑定ip,设置后只接受来自该ip的请求 4、port 监听端口,默认是6379 5、loglevel 分为4个等级:debug verbose notice warning 6、logfile "/var/log/redis.log" 用于配置log文件地址 7、databases 10 设置数据库个数,默认使用的数据库为0 8、save 设置redis进行数据库镜像的频率。 9、rdbcompression 在进行镜像备份时,是否进行压缩 10、dbfilename /data/backups/redis.rdb 镜像备份文件的文件名 11、dir ./ 指定本地数据库存放目录 12、slaveof <masterip> <masterport> 设置当本机为slav服务时,设置master服务的IP地址及端口,在Redis启动时,它会自动从master进行数据同步 13、masterauth 主数据库连接需要的密码验证 14、requirepass 设置 登陆时需要使用密码 15、maxclients 限制同时使用的客户数量 16、maxmemory 1g 设置redis能够使用的最大内存 17、 指定是否在每次更新操作后进行日志记录,Redis在默认情况下是异步的把数据写入磁盘,如果不开启, 可能会在断电时导致一段时间内的数据丢失。因为 redis本身同步数据文件是按上面save条件来同步的, 所以有的数据会在一段时间内只存在于内存中。默认为no appendonly 开启append only模式 18、Appendfsync 设置对appendonly.aof文件同步的频率(对数据进行备份的第二种方式) 19、vm-enabled 是否开启虚拟内存支持 (vm开头的参数都是配置虚拟内存的) 20、vm-swap-file 虚拟内存文件路径,默认值为/tmp/redis.swap,不可多个Redis实例共享 21、vm-max-memory 设置redis使用的最大物理内存大小 22、vm-page-size 设置虚拟内存的页大小 23、vm-pages 设置交换文件的总的page数量 24、vm-max-threads 设置VM IO同时使用的线程数量 25、Glueoutputbuf 把小的输出缓存存放在一起 26、hash-max-zipmap-entries 设置hash的临界值 27、Activerehashing 重新hash 28、appendfilename "appendonly.aof" 指定更新日志文件名,默认为appendonly.aof 29、include /path/to/local.conf 指定包含其它的配置文件,可以在同一主机上多个Redis实例之间使用同一份配置文件,而同时各个实例又拥有自己的特定配置文件 ########################################################################################################## redis设置密码 ./redis-cli config get requirepass config set requirepass 123456 config get requirepass auth 123456 用户登录认证完毕。 连接到主机为 127.0.0.1,端口为 6379 ,密码为 mypass 的 redis 服务上。 redis-cli -h 127.0.0.1 -p 6379 -a "123456" ############################################################################# redis操作命令 1、查看所有key keys * 或 keys "*" 2、查看匹配前缀的keys keys "miao*" 3、随机取出一个key randomkey 4、查看key的类型 type key 5、查看数据库中key的数量 dbsize 6、查看服务器信息 info 7、查看redis正在做什么 monitor 8、查看日志 slowlog get slowlog get 10 redis 配置文件 ############################################### bind 0.0.0.0 protected-mode yes port 7001 tcp-backlog 511 timeout 0 tcp-keepalive 300 daemonize yes supervised no pidfile /var/run/redis_7001.pid loglevel notice logfile "" databases 16 always-show-logo yes save 900 1 save 300 10 save 60 10000 stop-writes-on-bgsave-error yes rdbcompression yes rdbchecksum yes dbfilename dump.rdb dir ./ slave-serve-stale-data yes slave-read-only yes repl-diskless-sync no repl-diskless-sync-delay 5 repl-disable-tcp-nodelay no slave-priority 100 lazyfree-lazy-eviction no lazyfree-lazy-expire no lazyfree-lazy-server-del no slave-lazy-flush no appendonly yes appendfilename "appendonly.aof" appendfsync everysec no-appendfsync-on-rewrite no auto-aof-rewrite-percentage 100 auto-aof-rewrite-min-size 64mb aof-load-truncated yes aof-use-rdb-preamble no lua-time-limit 5000 slowlog-log-slower-than 10000 slowlog-max-len 128 latency-monitor-threshold 0 notify-keyspace-events "" hash-max-ziplist-entries 512 hash-max-ziplist-value 64 list-max-ziplist-size -2 list-compress-depth 0 set-max-intset-entries 512 zset-max-ziplist-entries 128 zset-max-ziplist-value 64 hll-sparse-max-bytes 3000 activerehashing yes client-output-buffer-limit normal 0 0 0 client-output-buffer-limit slave 256mb 64mb 60 client-output-buffer-limit pubsub 32mb 8mb 60 hz 10 aof-rewrite-incremental-fsync yes cluster-enabled yes cluster-config-file /data/redis/etc/redis.conf cluster-node-timeout 5000