数据库学习:https://blog.csdn.net/weixin_39778570/article/details/95066091
Java(持续更新):https://blog.csdn.net/weixin_39778570/article/details/94667501
更多知识:https://blog.csdn.net/weixin_39778570/article/details/100052454#_22

文章目录

  • 思维导图
  • 使用
    • 学习网站
    • 安装地址
    • 连接
    • 字符串
    • 哈希
    • 列表
    • 集合
    • 有序集合
    • HyperLogLog
    • 发布和订阅
    • 事务
    • 性能测试
    • 管道技术
    • java使用
  • 管理

思维导图

使用

学习网站

https://redis.io/commands

安装地址

https://github.com/microsoftarchive/redis/releases

连接

首先我们要打开redis服务
切换到redis按照目录下,输入下面的命令

redis-server.exe redis.windows.conf


接着,我可以再打开一个或多个命令行窗口去连接我们的redis服务(这不就是典型的C/S模型嘛…)
ok,切换到redis的安装目录,输入下面的命令

redis-cli.exe -h 127.0.0.1 -p 6379


到此,你就成功连接上redis服务了

KEYS 是查看目前所有的键名
SET 是设置一个新的键
Get 是获得键的值
DEL 是删除键
在redis中,我们可以使用键命令管理我们的键
这里演示几个常用的命令,更多的命令参考:https://redis.io/commands#generic

字符串

在redis里面,通过set key value,这种形式创建的value都会以字符串的形成存储,这里演示常用的命令

SET 是设置一个键值对
GET 是获得键的值
MSETSET的扩展,可以通过一个命令设置多个键值对
MGET 同上理解
APPEND 是对字符串进行扩展
GETRANGE 是获取子串
INCR 是整形类型的值进行加一操作

哈希

哈希就是我平时在数据结构里学的那种哈希结构。
通过 HSET hashname key value 这样的方式就可以设置一个哈希表了,hashname是表名,之后就是键值对了,下面演示常用的命令
下面说的表指的是哈希表
HSET 就是往哈希表里创建一个键值对
HMSET 就是上面的操作的批量化
HGET 就是获得某个哈希表下面的键的值
HMGET 就是上面的操作的批量化
HINCRBY 对表下的某个键进行自增
HLEN 表的大小
HKEYS 表下的键
HVALS 表下的值
HGETALL 表下的所有键值对
HDEL 删除某条键值对

列表

redis是使用双端列队来实现的
所以我们往头尾CRUD操作是非常快的,尽量不要往中间CRUD
常用命令如下
LPUSH 往链表左边插入一个或多个值
RPUSH 往链表右边插入一个或多个值
LLEN 返回链表的长度
LINDEX 获得链表指定下标的值,从左开始
LRANGE start end 返回从下标为[start,end]范围内的值,-1表示末尾
LSET 设置下标的值
RPOPLPUSH mylist newlist 把mylist右边的一个值移动到newlist左边
BLPOP,BRPOP,BRPOPLPUSH 允许在一定时间内阻塞,就是说一段时间内没有值弹出,但是在这个时间内,另一个客户端PUSH值进了列队,那么阻塞的那个就能弹出这个值了

集合

redis中的集合也是通过哈希表来实现的,是一个无序集合,下面演示常用的一些命令
SADD 往集合里添加元素
SMEMBERS 查看集合的所有元素
SCARD 查看集合的大小
SPOP 弹出一个元素
SUNION 集合取交集
SUNIONSTORE set set1 set2 set3 …set1,2,3取交集并存在set中
SDIFF 集合取差集
SDIFFSTORE 集合取差集存在另一个集合中


有序集合

redis中的有序集合是跳跃表+字典来实现的
有序集合的每一个节点都是以(score,value)这样的方式来存储的
介绍几个常用的命令
ZADD 往集合里添加元素
ZCARD 集合元素的个数
ZCOUNT 指定范围内集合元素的个数
ZINCRBY 增加某个value的score
ZSCORE 查询某个value的score
ZSCAN 迭代遍历整个集合
ZPOPMAX 弹出score最大的节点
ZPOPMIN 弹出score最小的节点(这两个命令需要在高版本下)
ZRANGEBYSCORE 返回节点的score在指定范围内的节点
ZRANGE 返回节点的score的排名在指定范围内的节点
ZRANK 返回value的score的排名
ZREM 移除指定value的节点
ZREMRANGEBYSCORE 移除指定score范围内的节点
ZREMRANGEBYRANK 移除指定的score排名范围内的节点


HyperLogLog

Redis HyperLogLog 是用来做基数统计的算法
就是说永磊统计字符串的种类数
常用命令
PFADD 往集合里添加数据
PFCOUNT 统计数据种类数
PFMERGE 集合合并

发布和订阅

我们的redis服务器下面运行着多台客户机,当有有一台或多台客户机订阅一个频道的时候,当有一台客户机在这个频道上发布了消息,订阅的频道就能接收到消息,比如此处订阅了shamoxigua这个频道
SUBSCRIBE 订阅一个或者多个频道
PUBLISH 往指定频道推送消息

事务

redis中的单条命令是具备原子性的,多条命令是不具备原子性的,要让多条命令具备原子性,可以采用事务来实现,当一个key被WATCH的时候,如果我们在MULTI的时候,这个时候(已经MULTI但没有EXEC)有另一台客户机修改了key,则会导致EXEC执行失败,但是如果另一台修改key是成功的,key是会被修改的,而MULTI下的其他命令是不会被修改的

MULTI 开启一个事务
DISCARD 取消MULTI后的所有提交
EXEC 提交事务
WATCH 监控一个事务
UNWATCH 取消所有监控

性能测试

redis-benchmark -n 10000 -q

管道技术

java使用

https://redis.io/clients#java

import java.util.Iterator;
import java.util.List;
import java.util.Set;import redis.clients.jedis.Jedis;public class RedisUtil {private static Jedis jedis;static {jedis = new Jedis("localhost");// 有密码则设置密码,没有就跳过jedis.auth("123456");System.out.println("连接成功");//查看服务是否运行System.out.println("服务正在运行: "+jedis.ping());}/*** 字符串*/public static void testString() {jedis.set("testString", "test string ok");System.out.println(jedis.get("testString"));}/*** 链表*/public static void testList() {//存储数据到列表中jedis.lpush("site-list", "Runoob");jedis.lpush("site-list", "Google");jedis.lpush("site-list", "Taobao");// 获取存储的数据并输出List<String> list = jedis.lrange("site-list", 0 ,2);for(int i=0; i<list.size(); i++) {System.out.println("列表项为: "+list.get(i));}}public static void testKey() { // 获取数据并输出Set<String> keys = jedis.keys("*"); Iterator<String> it=keys.iterator() ;   while(it.hasNext()){   String key = it.next();   System.out.println(key);   }}public static void main(String[] args) {testString();testList();testKey();}}

管理

Redis 使用手册相关推荐

  1. 转-Redis学习手册(目录)

    为什么自己当初要选择Redis作为数据存储解决方案中的一员呢?现在能想到的原因主要有三.其一,Redis不仅性能高效,而且完全免费.其二,是基于C/C++开发的服务器,这里应该有一定的感情因素吧.最后 ...

  2. phpredis中文手册——《redis中文手册》 php版

    redis中文手册:http://readthedocs.org/docs/redis/en/latest/ 本文是参考<redis中文手册>,将示例代码用php来实现,注意php-red ...

  3. php redis中文手册——《redis中文手册》 php版

    redis中文手册:http://readthedocs.org/docs/redis/en/latest/ 本文是参考<redis中文手册>,将示例代码用php来实现,注意php-red ...

  4. PHP Redis使用手册

    phpredis中文手册--<redis中文手册> php版 redis中文手册:http://readthedocs.org/docs/redis/en/latest/ Redis中文手 ...

  5. phpredis中文手册(使用方法)——《redis中文手册》 php版

    redis中文手册:http://readthedocs.org/docs/redis/en/latest/ 本文是参考<redis中文手册>,将示例代码用php来实现,注意php-red ...

  6. phpredis中文手册《redis中文手册》php版

    本文是参考<redis中文手册>,将示例代码用php来实现,注意php-redis与redis_cli的区别(主要是返回值类型和参数用法). 目录(使用CTRL+F快速查找命令): php ...

  7. php mutile 手册,Redis技术手册 - Lamp资深讲师|lamp小强|linux|php|javascript - OSCHINA - 中文开源技术交流社区...

    Redis技术手册: --------------------------------手册------------------------------- Redis实战手册.pdf Redis学习笔记 ...

  8. redis练习手册redis的配置文件redis.conf介绍

    如果希望使用 redis.conf 启动 redis 需要在启动 redis-server 后加上 redis.conf ,否则会使用默认配置启动 reids ./src/redis-server r ...

  9. Redis学习手册1—数据结构之字符串

    Redis数据结构之字符串 字符串 存储结构 命令 SET命令 改变覆盖规则 GET命令 GETSET命令 MSET命令 MGET命令 MSETNX命令 STRLEN命令 GETRANGE SETRA ...

  10. Redis学习手册(Sorted-Sets数据类型)

    一.概述: Sorted-Sets和Sets类型极为相似,它们都是字符串的集合,都不允许重复的成员出现在一个Set中.它们之间的主要差别是Sorted-Sets中的每一个成员都会有一个分数(score ...

最新文章

  1. PostgreSql、MySql字段值为空时取其他值语句
  2. 2013年35真棒恭贺新禧 - 壁纸
  3. Mui --- app与服务器之间的交互原理、mui ajax使用
  4. 【蓝桥杯省赛】冲刺练习题【数学公式】倒计时【06】天(准考证组委会已下发,请查询)
  5. 多对多(many-to-many)
  6. 如何用jsp连接mysql_如何用jsp连接mysql数据库
  7. 关于JPA方法名创建自动查询
  8. Zookeeper 辅助 API
  9. har文件解析工具_嵌入式MCU也能跑AI?STM32 Cube.AI工具包使用初探
  10. docker部署sprinboot项目
  11. FPGA写约束文件+固化+上板抓信号方法(vivado软件)
  12. 近几天,被这个国家的最高科技奖刷屏了~
  13. mysql创建表时出现10064错误
  14. SpringBoot2 综合案例(05):定时任务和JDBC多数据源配置
  15. 使用编辑器为模型批量设置 替换lod模型
  16. 鞍部在哪里_观山指南!喜马拉雅9座8000米高峰在哪儿看?
  17. 百度云盘转存阿里云盘工具下载
  18. 【Matlab】使用Matlab运行Windows命令行命令+实例
  19. 用Navicat Premium连接数据库!
  20. 计算机与科技课题题目,新颖的计算机科学技术专业论文选题 计算机科学技术专业论文题目选什么比较好...

热门文章

  1. Your CLT does not support macOS 11
  2. 和天然呆恋爱是什么体验?
  3. 在Tomcat下部署Jenkins
  4. 如何激活win10家庭版?这个方法超管用
  5. 成都天瑞地安谈VR虚拟增强技术能否取代修图软件的意见
  6. 虚拟机无法启动提示give root password for maintenance的多种解决方法
  7. LoRa Gateway 笔记 3.1.3 帮助程序 util_pkt_logger 进行 LoRa 空口抓包
  8. 视图间切换的时候的动画效果
  9. 软件系统复杂性灾难及解决方案探究
  10. Java读取单个字符