Redis安装和使用

Posted Shall潇

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Redis安装和使用相关的知识,希望对你有一定的参考价值。

Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,它支持存储的value类型,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。

一、Redis安装

1、安装gcc

yum -y install gcc

2、下载Redis

下载地址:点这里 我下的是 6.3.0,尽量用stable 稳定版
下载好后上传至服务器

3、解压

tar -zxvf redis-6.2.3.tar.gz

4、编译

cd redis-6.2.3
make
make install PREFIX=/opt/soft/redis6

5、拷贝配置文件至新目录下

cp redis.conf /opt/soft/redis6

6、修改配置文件(可跳过)

不配置可以直接启动redis,但是想后台启动redis,需要配置一下 redis.conf 文件
将daemonize no 改为 yes
在这里插入图片描述

7、启动

1、未设置后台启动的启动命令:

  • 启动服务
./bin/redis-server
  • 启动客户端
./bin/redis-cli

2、设置后台启动的启动命令:

  • 启动服务
./bin/redis-server ./redis.conf
  • 查看服务是否启动
ps -ef |grep redis
  • 客户端的不变

二、Redis基本命令

Redis 数据类型

数据类型说明
String字符串
List可重复集合
Set不可重复集合
Hash键值对集合
Sortedset(Zset)有序的Set

Redis 中默认16个库 (0~15)
选择库:如果不指定,默认使用0号库

使用0号库
select 0
使用1号库
select 1

String

插入

set key value

127.0.0.1:6379> set name "tom"

查看vlaue

get key

127.0.0.1:6379> get name
"tom"

修改value

【由于redis是基于内存的数据库,并没有update操作,而是通用的插入】

127.0.0.1:6379> set name "jack"
OK
127.0.0.1:6379> get name
"jack"

查看所有key

keys *

127.0.0.1:6379> keys *
1) "name"

删库

flushdb

Set

插入

sadd key value1 value2 …

127.0.0.1:6379> sadd addr "China" "USA" "France" "German" "Japan"
(integer) 5

查看

smembers key

127.0.0.1:6379> smembers addr
1) "France"
2) "German"
3) "USA"
4) "China"
5) "Japan"

查看value是否在Set中

sismember key value

127.0.0.1:6379> sismember addr "USA"
(integer) 1
127.0.0.1:6379> sismember addr "UF"
(integer) 0

获取当前Set元素个数

scard key

127.0.0.1:6379> scard addr
(integer) 5

弹出集合

spop key 每次弹出的个数

127.0.0.1:6379> spop addr 2
1) "USA"
2) "German"
127.0.0.1:6379> spop addr 2
1) "France"
2) "China"
127.0.0.1:6379> spop addr 2
(empty array)

删除

srem key value

127.0.0.1:6379> srem addr "Japan"
(integer) 1
127.0.0.1:6379> smembers addr
1) "German"
2) "USA"
3) "China"
4) "France"

List

从头部插入

lpush key value1,value2

127.0.0.1:6379> lpush user "jack" "lilei" "louis" "carter"
(integer) 4

从尾部插入

rpush key value1,value2

127.0.0.1:6379> rpush user "trump"
(integer) 5

查看

lrange key 0 -1

【0:第一个,-1:最后一个】

127.0.0.1:6379> lrange user 0 -1
1) "carter"
2) "louis"
3) "lilei"
4) "jack"
5) "trump"

查看指定索引元素

lindex key 索引

127.0.0.1:6379> lindex user 4
"trump"

更新

lset key 索引 value_new

127.0.0.1:6379> lset user 4 jack

由于List 可以是重复元素,所以我们会看到两个 jack

127.0.0.1:6379> lrange user 0 -1
1) "carter"
2) "louis"
3) "lilei"
4) "jack"
5) "jack"

删除

lrem key 个数 value

127.0.0.1:6379> lrem user 2 "jack"
(integer) 2

Hash

插入

hset key key1 value1

127.0.0.1:6379> hset userinfo name "tom"
(integer) 1
127.0.0.1:6379> hset userinfo age 23
(integer) 1
127.0.0.1:6379> hset userinfo addr "beijing"
(integer) 1
127.0.0.1:6379> hset userinfo hobby "swimming"
(integer) 1

查看长度
hlen key

127.0.0.1:6379> hlen userinfo
(integer) 4

查看有的key

hkeys key

127.0.0.1:6379> hkeys userinfo
1) "name"
2) "age"
3) "addr"
4) "hobby"

查看有的value

hvals key

127.0.0.1:6379> hvals userinfo
1) "tom"
2) "23"
3) "beijing"
4) "swimming"

查看所有的key-value

hgetall key


查看指定key1的value

hget key key1

127.0.0.1:6379> hgetall userinfo
1) "name"
2) "tom"
3) "age"
4) "23"
5) "addr"
6) "beijing"
7) "hobby"
8) "swimming"

修改

hset key key1 value_new

127.0.0.1:6379> hset userinfo addr "nanjing"
(integer) 0
127.0.0.1:6379> hgetall userinfo
1) "name"
2) "tom"
3) "age"
4) "23"
5) "addr"
6) "nanjing"
7) "hobby"
8) "swimming"

删除

hdel key key1

127.0.0.1:6379> hdel userinfo age
(integer) 1

SortedSet

插入
zadd key key1 value1

127.0.0.1:6379> zadd laptop 1 "thinkpad"
(integer) 1
127.0.0.1:6379> zadd laptop 2 "hp"
(integer) 1
127.0.0.1:6379> zadd laptop 3 "auas"
(integer) 1
127.0.0.1:6379> zadd laptop 3 "mi"
(integer) 1

查询
zrange key 0 -1

127.0.0.1:6379> zrange laptop 0 -1
1) "thinkpad"
2) "hp"
3) "auas"
4) "mi"

删除

127.0.0.1:6379> zrem laptop "auas"
(integer) 1

三、Java连接(Jedis)

1、导入依赖

<dependency>
  <groupId>redis.clients</groupId>
  <artifactId>jedis</artifactId>
  <version>3.6.0</version>
</dependency>

2、编写代码

简单demo
如果下面代码执行,报redis 进入保护模式的错

【请在客户端执行如下命令:离开保护模式】

config set protected-mode "no"
public class Demo1 {
    private final static String HOST = "192.168.184.XXX";
    private final static int PORT = 6379;
    public static void main(String[] args) {
        Jedis jedis = new Jedis(HOST, PORT);

        jedis.set("t1","Louis");
        System.out.println(jedis.get("t1"));

        Set<String> keys = jedis.keys("*");
        Iterator<String> iterator = keys.iterator();
        while (iterator.hasNext()){
            System.out.println(iterator.next());
        }
        jedis.close();
    }
}

以上是关于Redis安装和使用的主要内容,如果未能解决你的问题,请参考以下文章

Redis实现分布式锁(设计模式应用实战)

Redis实现分布式锁(设计模式应用实战)

Android 逆向Android 进程注入工具开发 ( Visual Studio 开发 Android NDK 应用 | Visual Studio 中 SDK 和 NDK 安装位置 )(代码片段

超详细ubuntu安装redis及使用

如何利用redis来进行分布式集群系统的限流设计

jedis连接redis