redis

下载redis:官网

解压   tar -xf redis-7.0.4.tar.gz
进入目录  下载gcc-c++进行编译   make && make install
将redis 的配置文件拷贝  
cd /usr/
mkdir RDS
cp /opt/redis-7.0.4/redis.conf ./
配置文件
daemonize yes    修改 已后台启动
启动redis
redis-server /usr/RDS/redis.conf   通过指定配置文件启动

redis-cli -p 6379  使用客户端连接指定端口号

127.0.0.1:6379> shutdown   关闭redis
not connected> exit	退出


在这里插入图片描述
在这里插入图片描述

redis-benchmark   默认自带的压测工具
测试100个链接并发
redis-benchmark -h localhost -p 6379 -c 100 -n 10000

====== SET ======                                         
  10000 requests completed in 0.08 seconds    10000 请求用了 0.08100 parallel clients			,每个请求100个请求
  3 bytes payload				每次写入三个字节
  keep alive: 1					只保证有一台服务器  单机性能
  host configuration "save": 3600 1 300 100 60 10000
  host configuration "appendonly": no
  multi-thread: no


在这里插入图片描述
在这里插入图片描述

基础知识

REDIS -key

redis默认16数据库

127.0.0.1:6379> SELECT 3  切换数据库
OK
127.0.0.1:6379[3]> DBSIZE   查看数据库db大小
(integer) 0
127.0.0.1:6379[3]> 

127.0.0.1:6379[3]> KEYS *   查看数据库所有的key
1) "name"
127.0.0.1:6379[3]> 

127.0.0.1:6379[3]> FLUSHDB   清空数据库
OK
127.0.0.1:6379> FLUSHALL     清空(全部数据库)所有数据库
OK

127.0.0.1:6379> EXISTS name   判断 查看键(key)是否存在
(integer) 1

127.0.0.1:6379> MOVE name 1 移除name到1库
(integer) 1
127.0.0.1:6379> KEYS * 
1) "age"
127.0.0.1:6379> 
127.0.0.1:6379> EXPIRE age 10   过期时间
(integer) 1
127.0.0.1:6379> ttl age      剩余时间
(integer) 3
127.0.0.1:6379> ttl age
(integer) 2
127.0.0.1:6379[1]> TYPE name  查看当前key的类型
string



redis是单线程的 官方表示 redis 是基于内存操作的 cpu不是内存平静 redis的瓶颈是基于机器的内存和带宽网络。

redis 为什么这么快

redis是将全部数据放在内存的

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

数据类型 string

在这里插入图片描述

string

127.0.0.1:6379> APPEND key1 "hello"  追加键值
(integer) 7

127.0.0.1:6379> set key1 v1   设置值
OK
127.0.0.1:6379> get key     获取值
(nil)
127.0.0.1:6379> get key1
"v1"
127.0.0.1:6379> APPEND key1 "hello"   
(integer) 7
127.0.0.1:6379> get key1
"v1hello"
127.0.0.1:6379> 
.
127.0.0.1:6379> STRLEN key1  查看键相对值的长度
(integer) 20

-----------
127.0.0.1:6379> INCR view   浏览量+1  递增

127.0.0.1:6379> DECR view    递减
(integer) 4
127.0.0.1:6379> DECR view
(integer) 3
127.0.0.1:6379> INCRBY view 10    递增+10
(integer) 13
127.0.0.1:6379> INCRBY view 10
(integer) 23
127.0.0.1:6379> INCRBY view 10
(integer) 33
127.0.0.1:6379> deCRBY view 10  递减 10
(integer) 23
127.0.0.1:6379> deCRBY view 10
(integer) 13
127.0.0.1:6379> deCRBY view 10
(integer) 3
127.0.0.1:6379> 

-------
127.0.0.1:6379> GETRANGE key1 0 3  截取0-3区间
"helo"
127.0.0.1:6379> GETRANGE key1 0 -1  获取全部字符串
"heloohu"

127.0.0.1:6379> SETRANGE key2 3 xxx
(integer) 6
127.0.0.1:6379> get key2
"qwexxx"
127.0.0.1:6379> SETRANGE key2 3 xxxasdasd  替换指定位置开始的字符串
(integer) 12
127.0.0.1:6379> get key2
"qwexxxasdasd"

SETEX   设置过期时间
setnx      不存在 才设置  分布式锁 常用
127.0.0.1:6379> SETEX key3 10 hello   SETEX   设置过期时间  设置 key3的值为 hello 30棉猴过期
OK
127.0.0.1:6379> ttl key3
(integer) 4
127.0.0.1:6379> ttl key3
(integer) 2
127.0.0.1:6379> get key2
"qwexxxasdasd"
127.0.0.1:6379> get key3
(nil)
127.0.0.1:6379> SETNX mykey redis  setnx      不存在 才设置
(integer) 1
127.0.0.1:6379> key *
(error) ERR unknown command 'key', with args beginning with: '*' 
127.0.0.1:6379> keys*
(error) ERR unknown command 'keys*', with args beginning with: 
127.0.0.1:6379> keys *
1) "key2"
2) "key1"
3) "mykey"
127.0.0.1:6379> SETNX mykey "mongdb"    设置不成功  有值 创建失败
(integer) 0
127.0.0.1:6379> get mykey
"redis"

----

127.0.0.1:6379> MSET k1 v1 k2 v2 k3 v3   同时设置多值   键值  键值  键值
OK
127.0.0.1:6379> KEYS *
1) "k3"
2) "k1"
3) "k2"
127.0.0.1:6379> MGET k1 k2 k3        同时获取
1) "v1"
2) "v2"
3) "v3"
127.0.0.1:6379> MSETNX k1 v1  k4 v4     原子性  要么一起成功  要么一起失败
(integer) 0
127.0.0.1:6379> get k4
(nil)
127.0.0.1:6379> 
# 对象  

127.0.0.1:6379> MSET  user:1:name zhangsan user:2:age 2
OK
127.0.0.1:6379> MGET user:1:name user:1:age
1) "zhangsan"
2) (nil)
127.0.0.1:6379> MGET user:1:name user:2:age
1) "zhangsan"
2) "2"

127.0.0.1:6379> GETSET db getset  如果不存在值  返回nil
(nil)
127.0.0.1:6379> get db
"getset"
127.0.0.1:6379> GETSET db mddb  存在值  则获取原来的值  并设置新的值
"getset"
127.0.0.1:6379> get db		
"mddb"
127.0.0.1:637
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值