安装redis https://redis.io/
解压redis : tar -zxvf redis-6.25.tar.gz /opt
解压后的文件就是redis的配置文件
基本环境安装: yun install gcc-c++
make
make install
redis默认安装路径
把之前解压好的文件redis-conf复制移动到/usr/local/bin下
进入到 /usr/local/bin 下 创建 保存redis.conf文件的文件夹 如:redisconf
创建文件:mkdir redisconf
cp /opt/redis-6.2.5/redis.conf redisconf
redis默认不是后台启动的,修改配置文件 vim redis.conf
将daemonize 修改成yes
启动
redis-server redisconf/redis.conf
连接redis ======> redis-cli -p 6379
端口号为默认本机
测试链接 ping
set get 测试下
基本命令:
查看所有的key ==> keys *
查看redis是否开启 ps -ef |grep redis 此命令为外部命令
如何关闭redis ===> shutdown 即可 之后 exit
性能测试:
redis-benchmark 是一个压力测试工具
redis-benchmark性能测试命令:
基础知识:
redis默认有16个数据库 select可以切换数据库 如: select 2 进入第三个库
dbsize可以看数据库的大小
key * 可以查看所有的key
flushall清除所有的库里面的内容
flushdb清空当前库
redis是单线程的!redistribution是很快的,官方表示,redis是基于内存操作,且cpu不是redis的性能瓶颈,redis的瓶颈是根据机器的内存和网络带宽,既然可以使用单线程实现就是用单线程了,redis是c语言写的,官方提供的数据为100000+的qps,完全不比同样使用key-value的memecache差
redis单线程为什么还这么快! :
误区1:高性能的服务器一定是多线程的?不一定
误区2:多线程(cpu上下文切换)一定比单线程效率高?不一定
核心:redis是将所有的数据全部放在内存中的,所以说使用单线程操作就是效率最高的!多线程cpu上下文切换耗时的操作对于内存系统来说!
基本命令:
exists: 判断key是否存在 exists key
move 移除 move key db db(第几个数据库)
expire:设置过期时间 如: expire name 10 (十秒之后移除name)
ttl : 看指定的key还多长的过期时间 ttl name
type: 查看当前key是什么类型 type name
redis 的 string类型
append : 追加字符串 append key value 如果当前key不存在就自动set 相当于set key value
strlen : 查看指定key的长度 strlen key
incr:是指定的key自增 相当于 i++ incr key
decr : 是指定的key自减相当于i-- decr key
设置步长:
- incrby 是指定的key增加指定的值 incrby key increment(增量 如: 10 ,20 )
- decrby 是指定的key自减指定的值 decrby key decrement(自减 如:10 ,20)
getrange: 截取指定key 起始位置 最后结束位置的字符串 getrange key start end
查看全部的字符串getrange key 0 -1
setrange: 替换指定key的指定下标的字符 setrange key offset value 如: setrange k1 2 "abc"
setex(set with expire) setex key seconds value 设置过期时间 该命令相当于将下面两行操作合并为一个原子操作
-
SET key value
-
EXPIRE key seconds
setnx : 不存在就设置(在分布式锁中常常用到) setnx key value key不存在就返回1 key存在就返回0不能两个相同,不存在才设置