安装redis

环境准备:yum install gcc-c++,gcc环境

上传解压redis安装包

安装redis,进入解压目录,输入make命令进行安装。

安装注意事项:

如果没有gcc环境,安装不成功

如果有gcc环境,安装过程中也可能出错, 类似于zmalloc.h:50:31: 致命错误:jemalloc/jemalloc.h:没有那个文件或目录这种错误, 原因是默认的使用MALLOC为jemalloc的环境去建立redis, 但是jemalloc没有, 会报错。jemalloc没有看是有libc, 因此编译的时候加上MALLOC =libc就可以了

make MALLOC=libc安装在了redis/src目录下, 可以指定安装目录,命令为make install PREFIX=/aaa/bbb/redis MALLOC=libc

安装后启动

redis前端启动:

进入安装后的bin目录下, ./redis-server命令启动,启动后显示类似于面包的图形。 不过一旦Ctrl + c或者会话关闭redis服务就会关闭。

redis后端启动:

解压后的redis.conf文件拷贝只bin目录, 修改daemonize为yes, 启动命令改为./redis-server redis.conf, 可以通过ps -ef | grep redis查看启动情况。

启动后关闭

强制性关闭:kill -9 redis服务进程号, 容易造成数据丢失

redis提供命令关闭:./redis-cli shutdown

redis命令行客户端

同样进入redis安装后的bin目录, ./redis-cli命令进入redis命令行客户端, 输入命令实现对redis的操作。

命令可以携带参数-h、-p。

-h:连接目标服务的IP。

-p:连接 目标服务的端口。

带参数命令:./redis-cli -h 127.0.0.1 -p 6379。

redis图形化界面客户端

在windows上安装redis的图形化界面客户端。redis-desktop-manager-0.8.0.3841.exe

连接redis服务,注意虚拟机关闭防火墙(service iptables stop)

可以使用图形化客户端启动命令行,redis服务名称上右击,选Console。

输入命令实现对redis的操作。

redis的java客户端jedis

jedis对redis的操作就类似于jdbc对数据库的操作。

导包:commons-pool版本.jar、jedis-版本.jar。

jedis连接操作:

import redis.clients.jedis.Jedis;

public class JedisTest {

public static void main(String[] args) {

// 创建jedislianjie

Jedis jedis = new Jedis("192.168.130.128", 6379);

// 使用jedis操作redis, 就是redis命令

jedis.select(1);

String setResult = jedis.set("name", "zhangsan");

String getResult = jedis.get("name");

System.out.println(setResult + ":" + getResult);

// 释放资源

jedis.close();

}

}

jedis有频繁创建销毁资源的问题, 就跟jdbc一样,使用jedispool操作redis:

import redis.clients.jedis.Jedis;

import redis.clients.jedis.JedisPool;

public class JedisPoolTest {

public static void main(String[] args) {

// 创建jedispool

JedisPool jedisPool = new JedisPool("192.168.130.128", 6379);

// 从jedispool中获取jedis对象

Jedis jedis = jedisPool.getResource();

// jedis操作redis

jedis.select(1);

String setResult = jedis.set("age", "18");

String getResult = jedis.get("age");

System.out.println(setResult + ":" + getResult);

jedis.close();

jedisPool.close();

}

}

redis命令

redis是以键值对key/value格式存储。value的类型可以是字符串(String),散列(Hash),列表(list),集合(sets),有序集合(sorted sets、zsets)

字符串类型(key, value)

存值:set key value, 成功返回OK

取值:get key, 返回对应key的value, 如果没有返回null

value可以转换成整形时,可以设置从0递增:incr count。key为count, 每执行一次,count对应的value加1。key不存在自动创建并赋值为0, 执行第一次后为1。

value可以转换成整形时,可以设置从某一值递减:decr count。key为count, 每执行一次,count对应的value减1。key不存在自动创建并赋值为0, 执行第一次后为-1。

value可以转换成整形时,可以设置按照指定数值递增:incrby key 递增值。如incrby count 4。count从0开始,每次递增4。

value可以转换成整形时,可以设置按照指定数值递减:decrby key 递减值。如decrby count 4。count从0开始,每次递增4。

散列类型(key, (field, value))

存值:hset key field value。如 hset user name 张三,成功返回1。

取值:hget key field。如 hget user name, 返回对应的name值。没有返回null

存多个值:hmset key field1 value1 field2 value2。如 hmset user age 18 address 北京,成功返回OK。

取多个值:hmget key field1 field2 field3。如 hmget user name age address,有值返回,没值返回空。

查看包含field数量:hlen key。如hlen user

获取key下的field/value:hgetall key 。如hgetall user

获取所有的field:hkeys key 。如hkeys user

获取所有的value:hvals key 。如hvals user

删除指定field:hdel key field 。如hdel user field

列表(key values[value1, value2, value3……])

list左侧存值:lpush key values[value1, value2, value3……]。如lpush mylist 1 2 3 4。成功返回list的数量。

list右侧存值:rpush key values[value1, value2, value3……]。如rpush mylist 5 6 7 8。

链表元素数量:llen key。 如llen mylist。

指定位置元素:lrange key start end。如lrange mylist 3 5。start 可以为负数。比如-1代表最后一个, -2代表倒数第二个。start和end为索引。上面的存储values为4 3 2 1 5 6 7 8,end大于最后一个数的索引了按照最后一个值算。

弹出左边元素:lpop key。如lpop mylist。

弹出右边元素:rpop key。如果弹出则values列表中不在含有此元素。

集合(key values[value1, value2, value3……])

集合的存储和list一样, 不同的是set中的元素不能重复,而且set在服务端可以完成多个sets的聚合运算。

添加数据:sadd key values[value1, value2, value3……],如果set中已经有了不会重复添加。返回成功添加的元素个数。比如:sadd myset 1 2 2 3 3 4

列举set中元素:smembers key。如:smembers myset。

删除指定成员:srem key members。如srem myset 1 2。成功返回1

两个集合取并集:sunion set1 set2。属于set1或者是属于set2

两个集合取交集:sinter set1 set2。属于set1而且属于set2

两个集合去差集:sdiff set1 set2。属于set1但是不属于set2

有序集合

集合存储类型和set一样,不同的是有序集合每一个成员都有一个分数与之关联,redis可以通过分数来为集合中的成员进行排序。

添加数据:zadd key score member1 score member2……。如zadd myzset 1 a 2 b 3 c,返回添加的数据个数。

列举zset中的元素:zrange key start end [withscores]:获取集合中角标为start-end的成员。withscores 表示返回结果包含分数。

给集合中成员增加分数:zincrby key score member。如zincrby myzset 0.1 a。返回增加后的a的分数。

删除元素:zrem key member[member1,member2……]。如 zrem myzset a b。返回删除的个数。

linux 安装了redis,Linux安装操作redis相关推荐

  1. Spring Boot 整合Redis 包含Java操作Redis哨兵 作者:哇塞大嘴好帥(哇塞大嘴好帅)

    Spring Boot 整合Redis 包含Java操作Redis哨兵 作者:哇塞大嘴好帥(哇塞大嘴好帅) 1. 配置环境 在SpringBoot2.0版本以后,原来使用的jedis被替换成为了let ...

  2. Redis-Linux中安装Redis、命令操作Redis

    目录 一.Redis简介 NoSQL与SQL的区别 二.Linux上安装redis 上传并解压redis.gz 进入 redis的解压目录,执行命令 make ​编辑 修改redis为守护进程 们测试 ...

  3. 【redis】java操作redis时,StringRedisTemplate的expire()方法的作用,什么时候使用

    java操作redis时,StringRedisTemplate的expire()方法的作用,什么时候使用 //重新设置过期时间为30分钟,刷新时间 redisTemplate.expire(MsOp ...

  4. Redis缓存 ava-Jedis操作Redis,基本操作以及 实现对象保存

    源代码下载: http://download.csdn.net/detail/jiangtao_st/7623113 1.Maven配置 [html] view plaincopyprint? < ...

  5. redis的lrange_thinkphp5操作redis系列教程】列表类型之lRange,lGetRange

    namespace app\admin\controller; use think\cache\driver\Redis; use think\Controller; use \think\Db; c ...

  6. Redis——使用 python 操作 redis 之从 hmse 迁移到 hset

    环境 windows 10 专业版 pycharm pro python 3.7 redis library 4.1.4 补充:Windows redis 3.2.100 问题描述 我想向一个 has ...

  7. Java操作Redis(四)--Java操作Redis实现排行榜

    应用说明 package com.ruoyi.project.redis;import redis.clients.jedis.Jedis; import redis.clients.jedis.Tu ...

  8. NOSQL——redis的安装,配置与简单操作

    内容预知 1.缓存的相关知识 1.1 缓存的概念 1.2 系统缓存 1.3 缓存保存位置及分层结构 DNS缓存 应用层缓存 数据层缓存 硬件缓存 2.关系型数据与非关系型数据库 2.1 关系型数据库 ...

  9. Linux系统下设置redis的密码 与 redis 命令

    最近在linux服务器上需要安装redis,来存放数据,增加用户访问数据的速度,由于是第一次安装,于是在百度上搜了一篇文章,按照这篇博客,顺利安装好了,因此将博主的文章拷过来记录一下,方便以后使用,也 ...

  10. Python 操作 redis

    官网命令(英文)列表:http://redis.io/commands Redis 教程:http://www.redis.net.cn/tutorial/3501.html Redis 命令参考:h ...

最新文章

  1. 秋招要跪?不怕!领走这份机器学习求职攻略
  2. 图灵奖得主Judea Pearl 智源大会演讲:从“大数据革命”到“因果革命”
  3. 4、常见命令操作(详细)
  4. java class类文件结构
  5. java基本语法——常量、变量、数据类型
  6. 眺望全真互联时代!TVP音视频技术闭门会闪耀上海
  7. HTTP调试工具:Fiddler 介绍二
  8. python质数n以内_用Python寻找前n个质数
  9. (转)Redis上踩过的一些坑-美团
  10. 沉迷Link-Cut tree无法自拔之:[BZOJ2594][Wc2006]水管局长数据加强版
  11. Javascript 跨域
  12. linux查找符合条件的文件并删除
  13. OC学习笔记四 数据类型
  14. iPhone清理喇叭灰尘_手机喇叭用久了灰尘多,与其经常换手机,不如自己动手清理...
  15. 阶段1 语言基础+高级_1-3-Java语言高级_08-JDK8新特性_第1节 常用函数接口_9_常用的函数式接口_Consumer接口...
  16. 一步步教你3个月打造10万IP的流量(实战演练)(admin9.com/波菜)
  17. 设计模式在项目中的应用案例_BIM案例 | BIM技术在码头项目中的创新应用
  18. oracle imp导入dmp文件流程
  19. Vue中时间日期格式化
  20. 什么样的DevOps技能是团队需要的?

热门文章

  1. 计算机excel求某班英语成绩单领取,EXCEL:计算各校各班学生成绩平均分,用AVERAGEIFS函数就挺好的...
  2. C语言数组之斐波那契数列
  3. 穷举法python例子_(Python)简单线性模型与穷举优化,穷举法
  4. 从市场与产品走向看RPA还能火多久?
  5. 自动弹窗被拦截 html,用JavaScript检查弹出窗口是否被阻拦的方法
  6. elementUI设置图标元素的大小
  7. HR HRP1000创建更新信息类型1000数据,RH_PNNNN_MAINTAIN
  8. python十进制小数转二进制小数_十进制小数转二进制
  9. 【Win10】系统,手动设置静态IP后出现两个IPv4地址解决方法
  10. Minix3进程概述