Login
网站首页 > 文章中心 > 其它

redis安装_Linux)、启动、退出、设置密码、远程连接

作者:小编 更新时间:2023-08-14 13:21:53 浏览量:294人看过

tar -zxvf redis-2.⑧17.tar.gz
cd redis-2.⑧17
make
sudo make install


如果不使用默认配置文件,启动时可以加上配置文件


12⑦0.0.1:6379> ping
PONG

12⑦0.0.1:6379> set var "hello world"
OK
12⑦0.0.1:6379> get var
"hello world"

关闭redis-server


例子

$ps -ef | grep redis
root     23422 19813  0 10:59 pts/5    00:00:08 redis-server *:6379

$sudo redis-cli  shutdown
[23422] 05 Mar 12:11:29.301 # User requested shutdown...
[23422] 05 Mar 12:11:29.301 * Saving the final RDB snapshot before exiting.
[23422] 05 Mar 12:11:29.314 * DB saved on disk
[23422] 05 Mar 12:11:29.314 # Redis is now ready to exit, bye bye...
[1]+  Done                    sudo redis-server  (wd: ~/soft/redis-2.10.3)
(wd now: ~/soft/redis-2.⑧17)

$ps -ef | grep redis
jihite 30563 19813  0 12:11 pts/5    00:00:00 grep redis

注:如果设置上密码后,单纯的redis-cli是关不掉的,必须加上ip、port、passwd



打开redis.conf找到requirepass,去掉默认,修改


验证密码的正确性

localhost:6379> auth jihite
OK

需要已经安装redis,可以使用redis-cli命令



③ Reis key

Redis是key-value的数据库,Redis的键用于管理Redis的键,基本语法是


例子:

localhost:6379> SET var redis
OK
localhost:6379> GET var
"redis"
localhost:6379> DEL var
(integer) 1
localhost:6379> GET var
(nil)

注:redis命令不区分大小写,所以get var和GET var是等价的

④ Redis数据类型

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

是Redis最基本的数据类型,可以理解成与Memcached一模一样的类型,一个key对应一个value

二进制安全的.意思是redis的string可以包含任何数据.比如jpg图片或者序列化的对象?

12⑦0.0.1:6379> set var "String type"
OK
12⑦0.0.1:6379> get var
"String type"

说明:利用set给变量var赋值"String type";利用get获得变量var的值

是一个键值对集合

是一个string类型的field和value的映射表,hash特别适合用于存储对象

hset,hget

12⑦0.0.1:6379> hget set1 name
"jihite"
12⑦0.0.1:6379> hget set1 score
"100"
12⑦0.0.1:6379> hset set2 name jihite2
(integer) 1
12⑦0.0.1:6379> hset set2 score 110
(integer) 1
12⑦0.0.1:6379> hget set1 name 
"jihite"

hsethget一次只能往哈希结构里面插入一个键值对,如果插入多个可以用hmsethmget

hmset, hmget例子

12⑦0.0.1:6379> HMSET var:1  name jihite school pku
OK

12⑦0.0.1:6379> HGETALL var:1
1) "name"
2) "jihite"
3) "school"
4) "pku"

说明

HMSET用于建立hash对象,HGETALL用于获取hash对象

hset v.s. hmset操作对比

12⑦0.0.1:6379> hset set5 name1 jihite1 name2 jihite2 name3 jihite3
(error) ERR wrong number of arguments for 'hset' command
12⑦0.0.1:6379> hmset set5 name1 jihite1 name2 jihite2 name3 jihite3
OK
12⑦0.0.1:6379> hget set5 name1
"jihite1"
12⑦0.0.1:6379> hmget set5 name1
1) "jihite1"
12⑦0.0.1:6379> hmget set5 name1 name2
1) "jihite1"
2) "jihite2"
12⑦0.0.1:6379> hget set5 name1 name2
(error) ERR wrong number of arguments for 'hget' command
12⑦0.0.1:6379> lpush lvar 1
(integer) 1
12⑦0.0.1:6379> lpush lvar a
(integer) 2
12⑦0.0.1:6379> lpush lvar ab
(integer) 3

12⑦0.0.1:6379> lrange lvar 0 1
1) "ab"
2) "a"
12⑦0.0.1:6379> lrange lvar 0 10
1) "ab"
2) "a"
3) "1"
12⑦0.0.1:6379> lrange lvar 2 2
1) "1"

lpush往列表的前边插入;lrange后面的数字是范围(闭区间)

Redis的Set是string类型的无序集合.

集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)

12⑦0.0.1:6379> sadd setvar redis
(integer) 1
12⑦0.0.1:6379> sadd setvar mongodb
(integer) 1
12⑦0.0.1:6379> sadd setvar mongodb
(integer) 0
12⑦0.0.1:6379> sadd setvar rabbitmq
(integer) 1
12⑦0.0.1:6379> smembers setvar
1) "rabbitmq"
2) "redis"
3) "mongodb"

set往集合中插入元素,smembers列举出集合中的元素

成功插入返回1;错误插入返回0,例子中mongodb第二次插入时,因已经存在,故插入失败.

zset和set一样也是String类型的集合,且不允许元素重复

zset和set不同的地方在于zset关联一个double类型的分数,redis通过分数对集合中的元素排序

zset的元素是唯一的,但是分数是可以重复的

12⑦0.0.1:6379> zadd zvar 1 redis
(integer) 1
12⑦0.0.1:6379> zadd zvar 1 redis
(integer) 0
12⑦0.0.1:6379> zadd zvar 2 redis
(integer) 0
12⑦0.0.1:6379> 
12⑦0.0.1:6379> zadd zvar 2 mongo
(integer) 1
12⑦0.0.1:6379> zadd zvar 0 rabbitmq
(integer) 1
12⑦0.0.1:6379>  
12⑦0.0.1:6379> ZRANGEBYSCORE zvar 0 1000
1) "rabbitmq"
2) "mongo"
3) "redis"
12⑦0.0.1:6379> 
12⑦0.0.1:6379> 
12⑦0.0.1:6379> zadd zvar -2 celery
(integer) 1
12⑦0.0.1:6379> ZRANGEBYSCORE zvar 0 1000
1) "rabbitmq"
2) "mongo"
3) "redis"
12⑦0.0.1:6379> ZRANGEBYSCORE zvar -3 1000
1) "celery"
2) "rabbitmq"
3) "mongo"
4) "redis"

分数为float(可正、负、0)

⑤ Redis HyperLogLog

Redis HyperLogLog是用来做基数统计的算法.优点是,在输入元素的数量或者体积非常非常大时,计算基数所需的空间总是固定的、并且是很小的.

注:因为HyperLogLog只会根据输入元素来计算基数,而不会存储输入元素本身,所以呢不会返回输入的各个元素.

localhost:6379> pfadd jsh redis
(integer) 1
localhost:6379> pfadd jsh redis
(integer) 0
localhost:6379> pfadd jsh mongodb
(integer) 1
localhost:6379> pfadd jsh rabbitmq
(integer) 1
localhost:6379> pfcount jsh
(integer) 3
localhost:6379> pfadd jsh2 redis
(integer) 1
localhost:6379> pfadd jsh2 a
(integer) 1
localhost:6379> pfcount jsh2
(integer) 2

localhost:6379> pfmerge jsh jsh2
OK
localhost:6379> pfcount jsh
(integer) 4
localhost:6379> pfcount jsh2
(integer) 2

说明:

pfcount key: 返回给定HyperLogLog的基数估算值

⑥ Redis 发布订阅

Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息.?

redis安装_Linux)、启动、退出、设置密码、远程连接

当有新消息通过PUBLISH发送给channel1时,这时候channel1就会把消息同时发布给订阅者

redis安装_Linux)、启动、退出、设置密码、远程连接

创建订阅频道redisChat

localhost:6379> subscribe redisChat
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "redisChat"
3) (integer) 1
localhost:6379> psubscribe redisChat
Reading messages... (press Ctrl-C to quit)
1) "psubscribe"
2) "redisChat"
3) (integer) 1

然后给channel redisChat发送消息"Hello World"

localhost:6379> publish redisChat "Hello World"
(integer) 1
Reading messages... (press Ctrl-C to quit)
1) "pmessage"
2) "redisChat"
3) "redisChat"
4) "Hello World"

⑦ Redis事务

事务是一个单独的操作集合,事务中的命令有顺序,是一个原子操作(事务中的命令要么全部执行,要么全部不执行),执行一个事务中的命令时不会被其他命令打断.

一个事务从开始到结束经过以下三个阶段:

开始事务

命令入队

执行事务

localhost:6379> MULTI
OK
localhost:6379> set name jihite
QUEUED
localhost:6379> get name
QUEUED
localhost:6379> sadd language "c++" "python" "java"
QUEUED
localhost:6379> smembers language
QUEUED
localhost:6379> exec
1) OK
2) "jihite"
3) (integer) 3
4) 1) "java"
   2) "python"
   3) "c++"

说明:事务以MULTI开始,以EXEC结束

⑧ Redis脚本

Redis 脚本使用 Lua 解释器来执行脚本.执行脚本的常用命令为?EVAL.基本语法


localhost:6379> EVAL "return {KEYS[1],KEYS[2],ARGV[1],ARGV[2]}" 2 key1 key2 first second
1) "key1"
2) "key2"
3) "first"
4) "second"

9. 数据备份与恢复

数据备份

localhost:6379> save
OK

改命令会在redis的安装目录中创建文件dump.rdb,并把数据保存在该文件中.

查看redis的安装目录

localhost:6379> config get dir
1) "dir"
2) "/home/jihite/soft/redis-2.⑧17"

数据恢复

只需将备份文件dump.rdb拷贝到redis的安装目录即可.

10. 数据库操作

localhost:6379> select 3
OK
localhost:6379[3]>

查看数据库中所有的键值

localhost:6379[1]> set a 1
OK
localhost:6379[1]> set  b 2
OK
localhost:6379[1]> keys *
1) "b"
2) "a"

返回当前数据库中所有key的数目:  dbsize?

删除当前数据库中的所有key:   flushdb? ?

清空所有数据库中的所有key:   flushall

把当前数据库中的key转移到指定数据库:move a aim_db,

例:

localhost:6379[1]> set z sss
OK
localhost:6379[1]> move z 0
(integer) 1
localhost:6379[1]> select 0
OK
localhost:6379> get z
"sss"

11.关闭持久化

数据持久化是Redis不同于其他缓存的一个特性,具有明显的有点.但如不希望持久化数据,只作为普通的缓存用,如memcache

方法:

修改配置文件,改完后重启.

#save 900 1  
#save 300 10  
#save 60 10000 

或执行操作命令

CONFIG SET save ""

以上就是土嘎嘎小编为大家整理的redis安装_Linux)、启动、退出、设置密码、远程连接相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章