redis安装启动
本机上传文件到服务器 scp ***.sql root@XXX.XXX.XXX.XXX:/root
服务器解压redis压缩包 tar -zxvf redis-6.0.23.tar.gz
增加环境支持yum install gcc-c++
安装make / make install
找到redis安装路径,到另一个地方拷贝配置文件 mkdir redis-config
cp /xx/xx/redis-6.0.23/redis.conf redis-config/
修改配置项:
- 注释#bind 127.0.0.1 (允许所有的ip访问redis)
- daemonize 为 yes
- 修改protected-mod no 关闭守护进程 允许多任务操作
查看进程是否启动 ps -ef|grep redis
启动位置在 /usr/local/bin下面
执行redis-server redis-config/redis.conf
启动redis:
redis-server redis-config/redis.conf #通过特定的配置文件启动redis
关闭shutdown
退出exit
测试:
redis-cli -h 127.0.0.1 -p 6379
redis性能测试
测试100个并发连接,100000 个请求
redis -benchmark -h 127.0.0.1 -p 6379 -c 100 -n 100000
参数: -c指定并发连接数 -n 指定请求数
redis是单行程为什么这么快?
- 执行效率上:cpu>内存>硬盘
- redis将所有数据都存放在内存中,使用单线程去操作执行效率就是最高的。多线程在执行操作中需要进行CPU的上下文切换,这个是耗时操作。
- redis采用网络IO多路复用技术保证在多连接的时候,系统的高吞吐量。
- redis使用跳表、链表、动态字符串、压缩列表等来实现它的数据结构,效率更高。
redis的八种数据类型
redis-key
keys * #查看所有的键
flushdb #清除当前数据库
flushall #清除全部数据库
set name xxxx #设置name键的值为xxxx
exists name #判断key是否存在
expire name 10 #设置key的过期时间,单位是秒
ttl name #查看当前key的剩余过期时间
type name #查看当前key的类型
操作指令: 点击查看指令
- 五种基本数据类型
- String
set key1 v1 #设置值
get key1 #获取值
append key1 "hello" #不存在就创建,存在就追加值
strlen key1 #获取字符串长度
setex key 30 "hello" #设置key 30s过期
setnx mykey "redis" #mykey不存在时设置成功
mset user:1:name zhangsan user:1:age 2 #设置user对象的多个键值 json字符来保存
getset #先get再set
- List
- Set
- Hash
- ZSet
- String
- 三种特殊数据类型
- geospatial
- hyperloglog
- bitmap位图