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命令
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支持五种数据类型: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是用来做基数统计的算法.优点是,在输入元素的数量或者体积非常非常大时,计算基数所需的空间总是固定的、并且是很小的.
注:因为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 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息.?
当有新消息通过PUBLISH发送给channel1时,这时候channel1就会把消息同时发布给订阅者
创建订阅频道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"
事务是一个单独的操作集合,事务中的命令有顺序,是一个原子操作(事务中的命令要么全部执行,要么全部不执行),执行一个事务中的命令时不会被其他命令打断.
一个事务从开始到结束经过以下三个阶段:
开始事务
命令入队
执行事务
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 脚本使用 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"
数据备份
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的安装目录即可.
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"
数据持久化是Redis不同于其他缓存的一个特性,具有明显的有点.但如不希望持久化数据,只作为普通的缓存用,如memcache
方法:
修改配置文件,改完后重启.
#save 900 1 #save 300 10 #save 60 10000
或执行操作命令
CONFIG SET save ""
以上就是土嘎嘎小编为大家整理的redis安装_Linux)、启动、退出、设置密码、远程连接相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!