redis

2021/6/17 2:21:33

本文主要是介绍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(哈希)



这篇关于redis的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程