redis1

历史:

1、单机mysql:一个mysql来存数据

2、第二次读的时候直接读缓存就行了,有的mysql专门负责读,有的专门负责写

3、表锁:读某一行,就得把整个表锁起来;mysql引擎不同,锁不同,M是主节点,S是从节点

 

 

 

 

 4、

 RDBMS是关系型数据库(处理有结构的数据)

 nosql(处理非固定结构的数据):

 

 真正在公司的是RDBMS+nosql,如mysql+redis

阿里的数据存储:

 

 

 

 

 

 通过在上面加一个统一的数据服务层,屏蔽了下面的各个数据库,并在服务层和数据库间加了个缓存

nosql(非关系型):

 

 

 

 redis:

 

 linux 安装:它提供的5.0.安装包有问题

程序放到opt下:mv redis-6.2.2.tar.gz /opt

cd /opt

tar -zxvf redis-6.2.2.tar.gz

cd redis-6.2.2/

安装gcc环境:yum install gcc-c++(自己的vmware的centos的yum配置有问题,用阿里云的吧)

make

make install

cd /usr/local/bin

redis默认安装路径:/usr/local/bin

复制配置文件:

mkdir config

cp /opt/redis-6.2.2/redis.conf config/

修改配置文件,使redis默认后台启动:

 vi config/redis.conf

 

 通过后面指定的配置文件启动服务:

redis-server config/redis.conf

使用redis客户端连接上:

redis-cli -p 6379

ping

set name asd

get name

查看所有的key:keys *

查看redis进程,ps -ef全格式显示所有进程:

ps -ef | grep redis

关闭redis并退出:shutdown

exit

redis-benchmark性能测试:

先启动服务:redis-server /usr/local/bin/config/redis.conf

然后并发100个连接,每个连接100000,-h指定给哪个服务器发请求:

redis-benchmark -h localhost -p 6379 -c 100 -n 100000

 

 

 默认有16个数据库

 

 

 

 

 

 

 

 操作key的:

是否存在:exists name

删掉key:del name

设置该key存活10s:expire name 10

查看该key还能活几秒:ttl name

查看key的类型:type name

5大类型:String、List、Set、Hash、Zset

String:

append在原字符串后附加内容:

 

字符长度:

STRLEN key1

incr、decr、incrby、decrby

 截取字符串:

 

 

 替换,从索引出开始替换:

 

 setex,setn,后面都是value:

 

 mset和mget:

 

 user1对象:

直接set和mset的user1各是各,两者不同

 

 getset:

  list:

最左边索引是0,lpush是从左边放进去,;lrange是取索引从0到-1(全部)

 

 rpush:从右边放

 

 lpop和rpop:

 

 lindex:

 

 llen list:返回长度

lrem list 2 one:移除list中的2个value=one的元素

 

 ltrim mylist 1 2 :只要mylist中的索引为1,2的元素

 

 lset:

 linsert:

 

 

 

Set

 

 scard:

 

 srem:

 

 srandmember:

 

 spop:

 

 smove:

 

 差集、交集、并集:

 

 

HASH:

一个key对应一个map集合,集合里面有多个<key,value> ,相当于对象名:属性,属性值.....,hset 也可以多个k,v

 

 hdel:

 

 hlen:

得到集合的大小

 

 hexists:

 

 hkeys和hvals:

 

 hincrby:

 

 hsetnx:

 

 hash更合适操作对象

Zset,给value赋一个隐形的score,zrange是升序排列:

 

 排序,zrangebyscore也是升序:

 

 移除zrem:

 

倒序:

 

 zcount:

 

 

 zcard:

 

 3种特殊数据类型:

Geospatial地理位置

getadd添加经纬度:

 

 getpos:

 

 geodist:

 

 georadius:

Hyperloglog基数统计不同元素的个数

 

 

 

 bitmap,最后的的value只能取0/1:

 

 

 

 

 

posted @ 2022-06-12 23:46  Jary霸  阅读(25)  评论(0编辑  收藏  举报