首页
学习
活动
专区
圈层
工具
发布

5.redis

作者头像
周杰伦本人
发布2023-10-12 14:10:26
发布2023-10-12 14:10:26
3480
举报
文章被收录于专栏:同步文章同步文章

什么是nosql

not only sql 泛指 非关系型数据库

为什么需要nosql

互联网网站存在的问题:

1.对数据库高并发读写的需求

2.对海量数据的高效率存储和访问的需求

3.对数据库的高可扩展性和高可用性的需求

nosql可以解决这些问题

nosql数据库的四大分类:

键值对存储数据库(redis)

内容缓存,主要用于处理大量数据的高访问负载

列存储数据库
文档型数据库(MongoDB)
图形数据库

nosql特点

1.易扩展

2.大数据量,高性能

3.灵活的数据模型

4.高可用

什么是redis

redis是c语言开发的一个开源的高性能键值对数据库,通过提供各种键值对数据类型来适应不同场景下的存储需求

redis应用场景

缓存(数据查询,短连接,新闻内容,商品内容)

聊天的在线好用列表

任务队列(秒杀,抢购,12306等等)

应用排行榜

网站访问统计

数据过期处理

分布式集群架构中的session分离

Redis的安装

Redis是c语言开发的。

安装redis需要c语言的编译环境。如果没有gcc需要在线安装。yuminstall gcc-c++

安装步骤:

第一步:redis的源码包上传到linux系统。

第二步:解压缩redis。

第三步:编译。进入redis源码目录。make

第四步:安装。makeinstall PREFIX=/usr/local/redis

PREFIX参数指定redis的安装目录。一般软件安装到/usr目录下

连接redis

redis的启动:

前端启动:在redis的安装目录下直接启动redis-server

[root@localhost bin]# ./redis-server

后台启动:

把/root/redis-3.0.0/redis.conf复制到/usr/local/redis/bin目录下

[root@localhost redis-3.0.0]# cp redis.conf /usr/local/redis/bin/

修改配置文件:

[root@localhost bin]# ./redis-serverredis.conf

查看redis进程:

[root@localhost bin]# ps aux|grep redis

root 5190 0.1 0.3 33936 1712 ? Ssl 18:23 0:00 ./redis-server*:6379

root 5196 0.0 0.1 4356 728 pts/0 S+ 18:24 0:00 grep redis

Redis-cli

[root@localhost bin]# ./redis-cli

默认连接localhost运行在6379端口的redis服务。

[root@localhost bin]# ./redis-cli -h192.168.25.153 -p 6379

-h:连接的服务器的地址

-p:服务的端口号

关闭redis:[root@localhost bin]# ./redis-clishutdown

或者通过kill -9 【端口号】杀死进程

redis键值数据类型:

1.字符串类型String:

key-value(做缓存)

Redis中所有的数据都是字符串。命令不区分大小写,key是区分大小写的。Redis是单线程的。Redis中不适合保存内容大的数据。

get、set、

incr:加一(生成id)

Decr:减一

2.散列类型Hash:

key-fields-values(做缓存)

相当于一个key对于一个map,map中还有key-value

使用hash对key进行归类。

Hset:向hash中添加内容

Hget:从hash中取内容

3.列表类型list

有顺序可重复

代码语言:javascript
复制
192.168.25.153:6379> lpush list1 a b c d
(integer) 4
192.168.25.153:6379> lrange list1 0 -1
1) "d"
2) "c"
3) "b"
4) "a"
192.168.25.153:6379> rpush list1 1 2 3 4
(integer) 8
192.168.25.153:6379> lrange list1 0 -1
1) "d"
2) "c"
3) "b"
4) "a"
5) "1"
6) "2"
7) "3"
8) "4"
192.168.25.153:6379> 
192.168.25.153:6379> lpop list1 
"d"
192.168.25.153:6379> lrange list1 0 -1
1) "c"
2) "b"
3) "a"
4) "1"
5) "2"
6) "3"
7) "4"
192.168.25.153:6379> rpop list1
"4"
192.168.25.153:6379> lrange list1 0 -1
1) "c"
2) "b"
3) "a"
4) "1"
5) "2"
6) "3"
192.168.25.153:6379> 
4.集合类型Set

元素无顺序,不能重复

代码语言:javascript
复制
192.168.25.153:6379> sadd set1 a b c c cd
(integer) 4
192.168.25.153:6379> smembers set1
1) "b"
2) "c"
3) "d"
4) "a"
192.168.25.153:6379> srem set1 a
(integer) 1
192.168.25.153:6379> smembers set1
1) "b"
2) "c"
3) "d"
192.168.25.153:6379> 

还有集合运算命令,自学。

5.有序集合类型SortedSet(zset):

有顺序,不能重复

代码语言:javascript
复制
192.168.25.153:6379> zadd zset1 2 a 5 b1 c 6 d
(integer) 4
192.168.25.153:6379> zrange zset1 0 -1
1) "c"
2) "a"
3) "b"
4) "d"
192.168.25.153:6379> zrem zset1 a
(integer) 1
192.168.25.153:6379> zrange zset1 0 -1
1) "c"
2) "b"
3) "d"
192.168.25.153:6379> zrevrange zset1 0-1
1) "d"
2) "b"
3) "c"
192.168.25.153:6379> zrange zset1 0 -1withscores
1) "c"
2) "1"
3) "b"
4) "5"
5) "d"
6) "6"
192.168.25.153:6379> zrevrange zset1 0-1 withscores
1) "d"
2) "6"
3) "b"
4) "5"
5) "c"
6) "1"
192.168.25.153:6379>
Key命令

设置key的过期时间。

Expire key second:设置key的过期时间

Ttl key:查看key的有效期

Persist key:清除key的过期时间。Key持久化。

192.168.25.153:6379> expire Hello 100 (integer) 1 192.168.25.153:6379> ttl Hello (integer) 77 Redis的所有数据都是保存到内存中的。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-05-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 什么是nosql
  • 为什么需要nosql
  • nosql数据库的四大分类:
    • 键值对存储数据库(redis)
    • 列存储数据库
    • 文档型数据库(MongoDB)
    • 图形数据库
  • nosql特点
  • 什么是redis
  • redis应用场景
  • Redis的安装
  • 连接redis
    • redis的启动:
    • Redis-cli
  • redis键值数据类型:
    • 1.字符串类型String:
    • 2.散列类型Hash:
    • 3.列表类型list
    • 4.集合类型Set
    • 5.有序集合类型SortedSet(zset):
    • Key命令
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档