服务器之家:专注于服务器技术及软件下载分享
分类导航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|数据库技术|

服务器之家 - 数据库 - Redis - Redis数据库学习提高工作效率

Redis数据库学习提高工作效率

2020-11-26 23:09Python之王小sen Redis

Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。

Redis数据库学习提高工作效率

 Redis

Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。

从2010年3月15日起,Redis的开发工作由VMware主持。从2013年5月开始,Redis的开发由Pivotal赞助。

Redis特性

  • Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
  • Redis不仅仅支持简单的key-value类型的数据,同时还把value分为list,set,zset,hash等数据结构存储。
  • 因为Redis交换数据快,所以在服务器中常用来存储一些需要频繁调取的数据,提高效率。

Redis安装

在Linux下安装Redis非常简单,主要命令就下面4个:

Redis数据库需要gcc编译,因此第一步检查是否安装gcc环境

  1. [root@VM_0_16_centos ~]# rpm -qa|grep gcc* 
  2. //无则安装。 
  3. [root@VM_0_16_centos ~]# yum install gcc-c++ 

创建目录,下载源码(通过华为镜像),解压源码

  1. [root@VM_0_16_centos redis]# mkdir /usr/lib/redis 
  2. [root@VM_0_16_centos redis]# cd /usr/lib/redis/ 
  3. [root@VM_0_16_centos redis]# wget https://mirrors.huaweicloud.com/redis/redis-5.0.5.tar.gz 
  4. [root@VM_0_16_centos redis]# tar -zxvf redis-5.0.5.tar.gz  

进入文件夹,编译

  1. [root@VM_0_16_centos redis]# cd ./redis-5.0.5/ 
  2. [root@VM_0_16_centos redis-5.0.5]# make 

上面4命令如果安装正常的话代表make编译成功了!

修改配置文件

1、将源码目录下redis配置文件redis.conf拷贝到/usr/local/software/redis/目录下。cp redis.conf /usr/local/software/redis/ 2、修改配置项,根据需要;如果不修改,使用默认配置也可以

安装,并检查是否安装了服务

  1. [root@VM_0_16_centos redis-5.0.5]# make PREFIX=/usr/local/redis install 
  2. //查看是否有此服务 
  3. [root@VM_0_16_centos bin]# ls /usr/local/redis/bin 
  4. redis-benchmark  redis-check-aof  redis-check-rdb  redis-cli  redis-sentinel  redis-server 
  5. //把解压目录下配置文件复制到安装路径下 
  6.  
  7. [root@VM_0_16_centos usr]# cp /usr/lib/redis/redis-5.0.5/redis.conf  /usr/local/redis/ 
  8. // 由于前端启动模式启动后不可以随意关闭(进程断开),所以需要配置后端模式启动 

下面,配置Redis外网访问,修改后端启动(即守护进程开启),取消ip绑定

  1. [root@VM_0_16_centos ~]# vim /usr/local/redis/redis.conf 
  2. 注释掉bind 127.0.0.1 或改为bind 0.0.0.0 
  3. #bind 127.0.0.1 
  4. 更改protected-mode yes为 
  5. # 关闭保护模式 
  6. protected-mode no 
  7.  
  8. 更改daemonize no为 
  9. daemonize yes 

设置密码requirepass 要很长的密码

启动,并指定配置文件

  1. [root@VM_0_16_centos ~]# cd /usr/local/redis/ 
  2.  
  3. [root@VM_0_16_centos redis]# ./bin/redis-server ./redis.conf 
  4.  
  5. 1675:C 15 Sep 2019 22:50:52.157 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo 
  6.  
  7. 1675:C 15 Sep 2019 22:50:52.157 # Redis version=5.0.5, bits=64, commit=00000000, modified=0, pid=1675, just started 
  8. 1675:C 15 Sep 2019 22:50:52.157 # Configuration loaded 

通过端口(6379)查看服务是否启动

  1. [root@VM_0_16_centos redis]# ps -ef|grep redis 
  2. root     1676     1  0 22:50 ?        00:00:00 ./bin/redis-server *:6379 
  3. root      1900  1219  0 22:52 pts/6    00:00:00 grep –color=auto redis 

本地客户端连接和redis服务关闭

  1. [root@VM_0_16_centos redis]# ./bin/redis-cli 
  2. 127.0.0.1:6379> eixt 
  3. [root@VM_0_16_centos redis]# ./bin/redis-cli shutdown 

通过外部(ip)连接,(需要开放云服务器相应端口)

  1. [root@VM_0_16_centos redis]# ./bin/redis-cli -h 49.ip.ip.2 -p 6379 -a 密码 
  2. Warning: Using a password with ‘-a’ or ‘-u’ option on the command line interface may not be safe. 
  3. 49.ip.ip.2:6379>  

上面步骤参考:腾讯云服务器安装redis,https://cloud.tencent.com/developer/article/1532497。

Redis数据模型

Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。

  1. String ------> 字符串
  2. Hash ------> 哈希
  3. List ------> 列表
  4. set ------> 集合
  5. Zset ------> 有序集合

 Redis数据库学习提高工作效率

Redis数据库学习提高工作效率

  • 连接redis:redis-cli
  • 退出:exit
  • 操作服务端:service redis start/stop/restart
  • 切换数据库:select n

 Redis数据库学习提高工作效率

Redis五大数据类型使用

全局key操作

对5 个数据类型都使用的命令

  1. 查看所有的key:keys * 
  2. 删除键值对:del key 
  3. 改名:rename  key  new_key 
  4. 设置过期时间:expire key seconds 

String类型

strings是redis最基本的数据类型,一个key对应一个value

  1. 设置数据:set  key  value 
  2. 查看数据:get  key 
  3. 追加数据:append  key  value 
  4. 删除数据:del key

List类型

  1. 添加数据:rpush key value [value…] 
  2. lpush key value [value…]     头部添加数据 
  3.  
  4. 查看数据:lrange key start stop 
  5. lindex key index      查看某个数据  
  6.  
  7. 修改数据:lset key index value 
  8. 删除数据:rpop key 
  9. lpop key 头部删除数据  

Hash类型

  1. 添加数据:hset key field value  
  2. 查看域值:hget key field 
  3. hgetall key  查看所有的field和value 
  4. 查看所有的value:hvals key 
  5. 查看所有的field:hkeys key 

Set类型

  1. 添加数据:sadd key member [member …] 
  2. 查看数据:smembers key 
  3. 随机删除:spop key 
  4. 指定删除:srem key member [member …] 

Sorted Set类型

  1. 添加数据:zadd key score member [score2 member2 …]  
  2. 查看数据:zrange key start stop  
  3. zrangebyscore key min max 通过scores值查看 
  4. 删除数据:zrem key member [member …] 
  5. 通过索引删除多个数据:zremrangebyrank key min max 
  6. zremrangebyscore key min max  -- 通过scores值删除 

「flushall 删除所有数据」

Redis可视化

我使用的是redis desktop manager。这个工具应该是现在使用率最广的可视化工具了。下载链接为:https://rdm.dev/pricing。

Redis数据库学习提高工作效率

Python连接redis

Python连接redis数据库的库是redis,没有Pyredis。

安装:pip install redisPython连接redis前,确保配置Redis外网访问成功。

  1. import redis 
  2.  
  3. # 普通连接 
  4. conn = redis.Redis(host="192.168.92.90", port=6379,password="123456"
  5. conn.set("x","hello"
  6. val = conn.get("x"
  7. print(val) # hello 
  8.  
  9.  
  10. import redis 
  11.  
  12. # 连接池 
  13. pool = redis.ConnectionPool(host="192.168.23.166", port=6379,password="123456",max_connections=1024) 
  14. conn = redis.Redis(connection_pool=pool) 
  15. print(conn.get("x1")) 

本文已收录 GitHub:https://github.com/MaoliRUNsen/runsenlearnpy100

延伸 · 阅读

精彩推荐
  • Redis《面试八股文》之 Redis十六卷

    《面试八股文》之 Redis十六卷

    redis 作为我们最常用的内存数据库,很多地方你都能够发现它的身影,比如说登录信息的存储,分布式锁的使用,其经常被我们当做缓存去使用。...

    moon聊技术8182021-07-26
  • RedisRedis Template实现分布式锁的实例代码

    Redis Template实现分布式锁的实例代码

    这篇文章主要介绍了Redis Template实现分布式锁,需要的朋友可以参考下 ...

    晴天小哥哥2592019-11-18
  • RedisRedis集群的5种使用方式,各自优缺点分析

    Redis集群的5种使用方式,各自优缺点分析

    Redis 多副本,采用主从(replication)部署结构,相较于单副本而言最大的特点就是主从实例间数据实时同步,并且提供数据持久化和备份策略。...

    优知学院4082021-08-10
  • Redisredis缓存存储Session原理机制

    redis缓存存储Session原理机制

    这篇文章主要为大家介绍了redis缓存存储Session原理机制详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪...

    程序媛张小妍9252021-11-25
  • RedisRedis 6.X Cluster 集群搭建

    Redis 6.X Cluster 集群搭建

    码哥带大家完成在 CentOS 7 中安装 Redis 6.x 教程。在学习 Redis Cluster 集群之前,我们需要先搭建一套集群环境。机器有限,实现目标是一台机器上搭建 6 个节...

    码哥字节15752021-04-07
  • Redis如何使用Redis锁处理并发问题详解

    如何使用Redis锁处理并发问题详解

    这篇文章主要给大家介绍了关于如何使用Redis锁处理并发问题的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Redis具有一定的参考学习...

    haofly4522019-11-26
  • Redis关于Redis数据库入门详细介绍

    关于Redis数据库入门详细介绍

    大家好,本篇文章主要讲的是关于Redis数据库入门详细介绍,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览...

    沃尔码6982022-01-24
  • Redis详解三分钟快速搭建分布式高可用的Redis集群

    详解三分钟快速搭建分布式高可用的Redis集群

    这篇文章主要介绍了详解三分钟快速搭建分布式高可用的Redis集群,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,...

    万猫学社4502021-07-25