redis的基础知识

一. redis的基础知识

  • NOsql:not only sql
    非关系型数据库:主流的数据库以外,基本上都是nosql
    非关系数据库也有库,库是系统自带的,而且也不需要创建,也不能创建,也无需在库中创建表,直接在预设的库中,以键值对的形式保存数据。(key=value)
    键值之间没有任何关联,值可以是任意合法的数值。

  • redis: redis是开源的,使用c语言编写的nosql数据库。
    redis: 内存型缓存数据库。
    redis基于内存运行的,只有执行持久化操作之后,数据才会写入到磁盘中去(自带的,定时执行持久化)
    1、持久化要打开
    2、注意内存的使用率

二. redis的工作模式

  1. redis是单进程模式,启动一个就是一个进程,一台服务器可以启动多个redis的进程。(端口不能相同,默认端口为6379)
  2. 在工作中,要根据情况来选择开启多少个进程。单进程的话高并发的情况下处理速度也会降低。(进程的数量太多,会影响cpu的效率)

三. redis的特点

  1. 具有极高的读写速度,读取速度110000次/s,每秒钟81000/s次的写操作。
  2. 数据类型非常丰富
  3. 支持数据的支持化
  4. 原子性,redis的所有操作都是原子性。
  5. 也支持数据的备份和恢复以及集群。
    redis: 排行榜,计数器,存储关系之类,实时日志记录,日志分析。
apt -y install redis

vim /etc/redis/redis.conf
68行
bind 127.0.0.1 192.168.246.6

systemctl restart redis
netstat -antp | grep 6379
tcp        0      0 127.0.0.1:6379          0.0.0.0:*               LISTEN      2432/redis-server 1 
tcp        0      0 192.168.246.6:6379      0.0.0.0:*               LISTEN      2432/redis-server 1

命令行的命令

  • redis-cli:连接服务端的命令行

  • redis-benchmark:检测redis的运行效率

  • redis-check-aof:修复AOF的之久化文件

  • redis-check-rdb:修复RDB的持久化文件

  • redis-cli -h 192.168.246.6 -p 6379 -a 密码
    -h 指定对方的ip地址
    -p 指定端口
    -a 密码

  • redis-benchmark -h 192.168.246.6 -p 6379 -c 100 -n 100000
    -c并发
    -n 请求
    发送100个并发的链接和100000个请求的测试性能。

四. redis的数据类型和常用的命令

数据类型

  1. string:字符串 (最常见的类型,如无特殊申明默认类型)
    string类型:redis的基础数据类型,最大的存储是512MB可以存储的数据类型,字符串,数字,图片等等。
exists:判断键值是否存在,存在返回1,否则返回0
append key:对已存在的键值,返回值的长度,不存的,直接创建键值对
strlen test1:返回值的长度
incr key:可以对键值的值自递增1

decr key:自减1
key的值必须是整数
incrby key 5:自定义增5
decrby key 5:自定义减5

MSET key1 1 key2 2 key3 3   #批量创建
mget key1 key2 key3   #批量查询
  1. list:列表类型
创建:lpush test10 a b c d
查看:lrange test10 0 3(知道值的个数)
lrange test10 0 -1 (0到最后一位)
rpush test11 a b c d (正向排序)
lrange test11 0 -1
lindex test11 2(根据索引下标查询)
lset test11 2 6 (更改索引下标)

LINSERT testll before a 10 (a之前添加)
LINSERT testll after a 11 (a之后添加)
  1. hash:散列
    散列类型。用于存储对象,用对象的类别和id构成键名,用字段表示对象化的数据,字段值,就是对象的属性值。
创建:hset myhash jx66 10
查看:hget myhash jx66
删除:hdel myhash jx66
删除myhash:del myhash
对键值自增5:hincrby myhash jx66 5
批量创建:hmset test3 num 1 num2 2
显示全部:hgetall test3
只显示对象:hkeys test3
只显示值:hvals test3
  1. set:无序集合
    声明一个key,键里面的值是元素,元素可以有多个,元素的类型是string
    元素是唯一的,不能重复。
    多个集合类型之间可以进行并集,交集,集差的运算。
创建:sadd test1 a b c c d
查看:smembers test1
查看元素个数:scard test1
随机查看:srandmember test1
随机移除:spop test1
将一个键里的元素与另一个交换:smove test1 test2
  1. sorted set:有序集合
    声明一个key,键里面有元素,元素可以有多个,元素的类型是string
    元素是唯一的,不能重复。
    每个元素都会关联的double类型的分数,表示的是权重,元素可以通过权重的大小进行排序元素的权重可以相同。
创建:zadd test3 1one 2 two 3 three
查看元素与权重:zrange test3 0 -1 withscores
显示索引下标:zrank test3 one
权重大于1,小于2的个数:zcount test3 1 2

常用的命令

set 键 值
set test2 2

set test1 3 ex 30   #创建test3存活30

del test2   #删除键值对

select 1   #切换库

rename test1 test2   #修改键值对的名称

expire test1 30   #将已经创建好的键值对,设定生命周期

move test1 1   #对键值对移库

get test2   #查看键的值

keys *   #查看库里的所有内容(在工作中不要使用)

keys ?任意单个字符
        *任意长度

type test1   #查询键值的数据类型

ttl test1   #查看生命周期

dbsize   #查看库里有多少键值对

redis的库

一共有16个库,0-15,默认是在0库
每个库之间的数据都是独立的。

键值对的生命周期

如果在默认条件,set的方式,都是永久存储。

设定生命周期
EX seconds | PX milliseconds
ex 以秒为单位计算生命周期
px: 以亳秒为单位计算生命周期

生命周期到期之后,会自动从库中删除。

设置密码

config set requirepass 123456
进入库未输入密码,将无操作权限
auth 123456 #库里面输入密码

root@u1:~# redis-cli -h 192.168.246.6 -p 6379
192.168.246.6:6379> set test1 1
(error) NOAUTH Authentication required.
192.168.246.6:6379> auth 123456
OK
192.168.246.6:6379> set test1 1
OK
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值