redis
作者:互联网
nosql理解
- 定义:非关系型数据库not only sql
- 特点:1.方便扩展,解耦性高; 2.高性能,一秒读11万,写8万; 3.数据类型多样性,且不需要事先设计数据库,随取随用;
- nosql四大分类:-----
-------1.k,v键值对;
-------2.文档型数据库(bson格式,和json一样)
MongoDB是基于分布式文件储存的数据库,主要用来处理大量的文档
MongoDB是一个介于关系型数据库和非关系数据中间的产品!是非关系型数据库中功能最丰富,最像关系型数据库的
ConthDB
-------列存储数据库
Hbse(大数据)
分布式文件系统
-------图关系数据库
redis
安装
#1.解压
tar -zxvf redis-6.0.10.tar.gz
#2.安装
make
#3.如果报错,可能是gcc 的版本过低,用gcc -v 查看版本,
安装的gcc是4.5.8版本的,版本过低,执行以下命令升级gcc即可
yum -y install centos-release-scl
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
scl enable devtoolset-9 bash
echo “source /opt/rh/devtoolset-9/enable” >> /etc/profile
gcc -v
#4.执行install
make install
#5.如果命令 which 和whereis 都找不到安装目录,可使用以下办法
ps -ef|grep redis
得到了进程号 xxxx
然后 ls -l /proc/xxxx/cwd
#6.复制redis.conf到当前安装目录下,方便之后使用
mkdir config
cp /zt/redis-6.0.10/redis.conf config
#7.redis 默认不是后台启动 ,需要修改配置文件(守护进程模式启动)
将 daemonize no 改成
daemonize yes
#8.通过配置文件来启动服务
redis-server config/redis.conf
#9.使用客户端进行连接测试
#连接端口
redis-cli -p 6379
set name zhoutian
get name
#查看所有的key
keys *
#10.关闭连接
先shutdown
再exit
测试性能 redis-benchmark
1.开启服务端,再连接一个客户端
2.查看redis是否开启
3.在bin目录下执行:
redis-benchmark -h localhost -p 6379 -c 100 -n 100000
redis基本知识和命令
#切换数据库
select 3
#清空当前数据库
flushdb
#清空所有数据库
flushall
#判断key是否存在
exists xxx
#移除一个键值对
move xxx
#设置数据的过期时间
expire xxx 10( 数据十秒钟后过期)
#查看数据类型
type xxx
为什么redis这么快,确实单线程的?
五大基本数据类型
string
append key xxxx(在某个字符后追加字符)
strlen key(获取字符串的长度)
set views 0--------------incr views-----数据自增(用于浏览量等场景)decr,自减
incrby views 10-----数据自增10
getrange key 0 2(获取字符串前三位)
setrange key 1 2 xxx(用xxx替换)
setex key 30 xxxx(字符串30秒后自动过期移除)
setnx key xxxx(如果key不存在再设置,不用覆盖)
mset k1 v1 k2 v2 k3 v3(批量设置值)
mget k1 k2 k3(批量的获取值)
msetnx k1 v1 k4 v4(如果都不存在才会设置成功,即有原子性特征)
mset user:1:name xxx user:1:age xxx(设置对象的值)
getset key xxx(如果不存在,返回null,并设置值;如果存在,返回对应的值,在进行设置值)
list(可以做栈,也可以做队列)
所有的list命令都是 L 开头
LPUSH list one (将一个或多个值放在列表的头部)
RPUSH list two(将一个或多个值放在列表的尾部)
LRANGE list 0 -1(取值)
LPOP list (从左移除一个)
RPOP list(移除最后一个)
LINDEX LIST 1(通过下标来获得一个值)
Lset list 0 xxx(将list中第一个元素替换为xxx)
LINSERT LIST AFTER
set
sadd myset one(向myset集合中添加元素)
smembers myset(查看myset中的所有值)
sismember myset xxx(判断xxx是不是在set集合中)
scard myset (获取myset中的元素个数)
srem myset xxx(移除myset中的元素xxx)
srandmember myset(随机抽取一个元素)
spop myset(随机删除一个元素)
smove myset1 myset2 xxx (将xxx从myset1中移动到myset2中去)
数字集合类
---差集 sdiff set1 set2
---交集 sinter set1 set2(共同好友,共同关注应用场景)
---并集 sunion set1 set2
hash(哈希)
标签:myset,redis,数据库,xxx,list,key 来源: https://blog.csdn.net/weixin_50569525/article/details/117961856