`
gaojingsong
  • 浏览: 1200973 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

【redis在linux安装与基本操作】

阅读更多
五朵金花:redis创造了五朵金花,各有特色,redis五朵金花即:
    redis值(value)可以是 字符串(String), 哈希(hashes), 列表(list), 集合(sets) 和 有序集合(sorted sets)

<一>redis安装过程
[root@hadoop0 opt]# tar -zxvf redis-3.0.5.tar.gz 
[root@hadoop0 opt]# cd redis-3.0.5/
[root@hadoop0 redis-3.0.5]# ls -l
[root@hadoop0 redis-3.0.5]# make
[root@hadoop0 redis-3.0.5]# cd src/
[root@hadoop0 src]# make install
Hint: It's a good idea to run 'make test' ;)
    INSTALL install
    INSTALL in
[root@hadoop0 src]# cd /usr/local/
[root@hadoop0 local]# mkdir -p /usr/local/redis/bin
[root@hadoop0 local]# mkdir -p /usr/local/redis/etc
[root@hadoop0 local]# mv /opt/redis-3.0.5/redis.conf  /usr/local/redis/etc/
[root@hadoop0 src]# mv redis-benchmark redis-check-aof redis-check-dump redis-cli redis-sentinel redis-ser
ver redis-trib.rb /usr/local/redis/bin/
root@hadoop0 bin]# cd /usr/local/bin
[root@hadoop0 bin]# ./redis-server   
(备注:产生警告,前台启动,若想后台启动,修改redis.conf配置文件:#daemonize yes   YES作为守护进程运行,NO 反之

5436:C 06 Nov 18:51:10.541 # Warning: no config file specified, using the default config. In order to specify a config file use ./redis-server /path/to/redis.conf
5436:M 06 Nov 18:51:10.542 * Increased maximum number of open files to 10032 (it was originally set to 1024).
5436:M 06 Nov 18:51:10.558 # Warning: 32 bit instance detected but no memory limit set. Setting 3 GB maxmemory limit with 'noeviction' policy now.
                _._                                                  
           _.-``__ ''-._                                             
      _.-``    `.  `_.  ''-._           Redis 3.0.5 (00000000/0) 32 bit
  .-`` .-```.  ```\/    _.,_ ''-._                                   
 (    '      ,       .-`  | `,    )     Running in standalone mode
 |`-._`-...-` __...-.``-._|'` _.-'|     Port: 6379
 |    `-._   `._    /     _.-'    |     PID: 5436
  `-._    `-._  `-./  _.-'    _.-'                                   
 |`-._`-._    `-.__.-'    _.-'_.-'|                                  
 |    `-._`-._        _.-'_.-'    |           http://redis.io        
  `-._    `-._`-.__.-'_.-'    _.-'                                   
 |`-._`-._    `-.__.-'    _.-'_.-'|                                  
 |    `-._`-._        _.-'_.-'    |                                  
  `-._    `-._`-.__.-'_.-'    _.-'                                   
      `-._    `-.__.-'    _.-'                                       
          `-._        _.-'                                           
              `-.__.-'                                               
5436:M 06 Nov 18:51:10.562 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
5436:M 06 Nov 18:51:10.563 # Server started, Redis version 3.0.5
5436:M 06 Nov 18:51:10.565 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
5436:M 06 Nov 18:51:10.567 * The server is now ready to accept connections on port 6379
[root@hadoop0 bin]# ./redis-server ../etc/redis.conf    
(备注:启动方式二,消除警告前台启动,若想后台启动,修改redis.conf:#daemonize yes   YES作为守护进程运行,NO 反之
5447:M 06 Nov 18:52:51.791 * Increased maximum number of open files to 10032 (it was originally set to 1024).
5447:M 06 Nov 18:52:51.792 # Warning: 32 bit instance detected but no memory limit set. Setting 3 GB maxmemory limit with 'noeviction' policy now.
                _._                                                  
           _.-``__ ''-._                                             
      _.-``    `.  `_.  ''-._           Redis 3.0.5 (00000000/0) 32 bit
  .-`` .-```.  ```\/    _.,_ ''-._                                   
 (    '      ,       .-`  | `,    )     Running in standalone mode
 |`-._`-...-` __...-.``-._|'` _.-'|     Port: 6379
 |    `-._   `._    /     _.-'    |     PID: 5447
  `-._    `-._  `-./  _.-'    _.-'                                   
 |`-._`-._    `-.__.-'    _.-'_.-'|                                  
 |    `-._`-._        _.-'_.-'    |           http://redis.io        
  `-._    `-._`-.__.-'_.-'    _.-'                                   
 |`-._`-._    `-.__.-'    _.-'_.-'|                                  
 |    `-._`-._        _.-'_.-'    |                                  
  `-._    `-._`-.__.-'_.-'    _.-'                                   
      `-._    `-.__.-'    _.-'                                       
          `-._        _.-'                                           
              `-.__.-'         
<二> 配置文件说明    
配置redis.conf配置文件:
#是否作为守护进程运行
daemonize yes
#配置pid的存放路径及文件名,默认为当前路径下
pidfile redis.pid
#Redis默认监听端口
port 6379
#客户端闲置多少秒后,断开连接
timeout 300
#日志显示级别
loglevel verbose
#指定日志输出的文件名,也可指定到标准输出端口
logfile stdout
#设置数据库的数量,默认连接的数据库是0,可以通过select N来连接不同的数据库
databases 16
#保存数据到disk的策略
#当有一条Keys数据被改变是,900秒刷新到disk一次
save 900 1
#当有10条Keys数据被改变时,300秒刷新到disk一次
save 300 10
#当有1w条keys数据被改变时,60秒刷新到disk一次
save 60 10000
#当dump   .rdb数据库的时候是否压缩数据对象
rdbcompression yes
#dump数据库的数据保存的文件名
dbfilename dump.rdb
#Redis的工作目录
dir /home/falcon/redis-2.0.0/
###########   Replication #####################
#Redis的复制配置
# slaveof <masterip> <masterport>
# masterauth <master-password>
############## SECURITY ###########
# requirepass foobared
############### LIMITS ##############
#最大客户端连接数
# maxclients 128
#最大内存使用率
# maxmemory <bytes>
########## APPEND ONLY MODE #########
#是否开启日志功能
appendonly no
# 刷新日志到disk的规则
# appendfsync always
appendfsync everysec
# appendfsync no
################ VIRTUAL MEMORY ###########
#是否开启VM功能
vm-enabled no
# vm-enabled yes
vm-swap-file logs/redis.swap
vm-max-memory 0
vm-page-size 32
vm-pages 134217728
vm-max-threads 4
############# ADVANCED CONFIG ###############
glueoutputbuf yes
hash-max-zipmap-entries 64
hash-max-zipmap-value 512
#是否重置Hash表
activerehashing yes 
      
<三>五朵金花:五大数据类型    
redis值(value)可以是 字符串(String), 哈希(hashes), 列表(list), 集合(sets) 和 有序集合(sorted sets)
对value操作的命令
exists(key):确认一个key是否存在
del(key):删除一个key
type(key):返回值的类型
keys(pattern):返回满足给定pattern的所有key
randomkey:随机返回key空间的一个
keyrename(oldname, newname):重命名key
dbsize:返回当前数据库中key的数目
expire:设定一个key的活动时间(s)
ttl:获得一个key的活动时间
select(index):按索引查询
move(key, dbindex):移动当前数据库中的key到dbindex数据库
flushdb:删除当前选择数据库中的所有key
flushall:删除所有数据库中的所有key
对String操作的命令
set(key, value):给数据库中名称为key的string赋予值value
get(key):返回数据库中名称为key的string的value
getset(key, value):给名称为key的string赋予上一次的value
mget(key1, key2,…, key N):返回库中多个string的value
setnx(key, value):添加string,名称为key,值为value
setex(key, time, value):向库中添加string,设定过期时间time
mset(key N, value N):批量设置多个string的值
msetnx(key N, value N):如果所有名称为key i的string都不存在
incr(key):名称为key的string增1操作
incrby(key, integer):名称为key的string增加integer
decr(key):名称为key的string减1操作
decrby(key, integer):名称为key的string减少integer
append(key, value):名称为key的string的值附加value
substr(key, start, end):返回名称为key的string的value的子串
对List操作的命令
rpush(key, value):在名称为key的list尾添加一个值为value的元素
lpush(key, value):在名称为key的list头添加一个值为value的 元素
llen(key):返回名称为key的list的长度
lrange(key, start, end):返回名称为key的list中start至end之间的元素
ltrim(key, start, end):截取名称为key的list
lindex(key, index):返回名称为key的list中index位置的元素
lset(key, index, value):给名称为key的list中index位置的元素赋值
lrem(key, count, value):删除count个key的list中值为value的元素
lpop(key):返回并删除名称为key的list中的首元素
rpop(key):返回并删除名称为key的list中的尾元素
blpop(key1, key2,… key N, timeout):lpop命令的block版本。
brpop(key1, key2,… key N, timeout):rpop的block版本。
rpoplpush(srckey, dstkey):返回并删除名称为srckey的list的尾元素,并将该元素添加到名称为dstkey的list的头部
对Set操作的命令
sadd(key, member):向名称为key的set中添加元素member
srem(key, member) :删除名称为key的set中的元素member
spop(key) :随机返回并删除名称为key的set中一个元素
smove(srckey, dstkey, member) :移到集合元素
scard(key) :返回名称为key的set的基数
sismember(key, member) :member是否是名称为key的set的元素
sinter(key1, key2,…key N) :求交集
sinterstore(dstkey, (keys)) :求交集并将交集保存到dstkey的集合
sunion(key1, (keys)) :求并集
sunionstore(dstkey, (keys)) :求并集并将并集保存到dstkey的集合
sdiff(key1, (keys)) :求差集
sdiffstore(dstkey, (keys)) :求差集并将差集保存到dstkey的集合
smembers(key) :返回名称为key的set的所有元素
srandmember(key) :随机返回名称为key的set的一个元素
对Hash操作的命令
hset(key, field, value):向名称为key的hash中添加元素field
hget(key, field):返回名称为key的hash中field对应的value
hmget(key, (fields)):返回名称为key的hash中field i对应的value
hmset(key, (fields)):向名称为key的hash中添加元素field 
hincrby(key, field, integer):将名称为key的hash中field的value增加integer
hexists(key, field):名称为key的hash中是否存在键为field的域
hdel(key, field):删除名称为key的hash中键为field的域
hlen(key):返回名称为key的hash中元素个数
hkeys(key):返回名称为key的hash中所有键
hvals(key):返回名称为key的hash中所有键对应的value
hgetall(key):返回名称为key的hash中所有的键(field)及其对应的value
小示例:
#在Shell命令行下启动Redis客户端工具。

命令行连接参数
redis-cli参数
Usage: redis-cli [OPTIONS] [cmd [arg [arg ...]]]
  -h <hostname>    Server hostname (default: 127.0.0.1)
  -p <port>        Server port (default: 6379)
  -s <socket>      Server socket (overrides hostname and port)
  -a <password>    Password to use when connecting to the server
  -r <repeat>      Execute specified command N times
  -i <interval>    When -r is used, waits <interval> seconds per command.
                   It is possible to specify sub-second times like -i 0.1
  -n <db>          Database number
  -x               Read last argument from STDIN
  -d <delimiter>   Multi-bulk delimiter in for raw formatting (default: \n)
  -c               Enable cluster mode (follow -ASK and -MOVED redirections)
  --raw            Use raw formatting for replies (default when STDOUT is not a  tty)
  --latency        Enter a special mode continuously sampling latency
  --slave          Simulate a slave showing commands received from the master
  --pipe           Transfer raw Redis protocol from stdin to server
  --bigkeys        Sample Redis keys looking for big keys
  --eval <file>    Send an EVAL command using the Lua script at <file>
  --help           Output this help and exit
  --version        Output version and exit

    /> redis-cli
    #清空当前选择的数据库,以便于对后面示例的理解。
    redis 127.0.0.1:6379> flushdb
    OK
    #添加String类型的模拟数据。
    redis 127.0.0.1:6379> set mykey 2
    OK
    redis 127.0.0.1:6379> set mykey2 "hello"
    OK
    #添加Set类型的模拟数据。
    redis 127.0.0.1:6379> sadd mysetkey 1 2 3
    (integer) 3
    #添加Hash类型的模拟数据。
    redis 127.0.0.1:6379> hset mmtest username "stephen"
    (integer) 1
    #根据参数中的模式,获取当前数据库中符合该模式的所有key,从输出可以看出,该命令在执行时并不区分与Key关联的Value类型。
    redis 127.0.0.1:6379> keys my*
    1) "mysetkey"
    2) "mykey"
    3) "mykey2"
    #删除了两个Keys。
    redis 127.0.0.1:6379> del mykey mykey2
    (integer) 2
    #查看一下刚刚删除的Key是否还存在,从返回结果看,mykey确实已经删除了。
    redis 127.0.0.1:6379> exists mykey
    (integer) 0
    #查看一下没有删除的Key,以和上面的命令结果进行比较。
    redis 127.0.0.1:6379> exists mysetkey
    (integer) 1
    #将当前数据库中的mysetkey键移入到ID为1的数据库中,从结果可以看出已经移动成功。
    redis 127.0.0.1:6379> move mysetkey 1
    (integer) 1
    #打开ID为1的数据库。
    redis 127.0.0.1:6379> select 1
    OK
    #查看一下刚刚移动过来的Key是否存在,从返回结果看已经存在了。
    redis 127.0.0.1:6379[1]> exists mysetkey
    (integer) 1
    #在重新打开ID为0的缺省数据库。
    redis 127.0.0.1:6379[1]> select 0
    OK
    #查看一下刚刚移走的Key是否已经不存在,从返回结果看已经移走。
    redis 127.0.0.1:6379> exists mysetkey
    (integer) 0
    #准备新的测试数据。    
    redis 127.0.0.1:6379> set mykey "hello"
    OK
    #将mykey改名为mykey1
    redis 127.0.0.1:6379> rename mykey mykey1
    OK
    #由于mykey已经被重新命名,再次获取将返回nil。
    redis 127.0.0.1:6379> get mykey
    (nil)
    #通过新的键名获取。
    redis 127.0.0.1:6379> get mykey1
    "hello"
    #由于mykey已经不存在了,所以返回错误信息。
    redis 127.0.0.1:6379> rename mykey mykey1
    (error) ERR no such key
    #为renamenx准备测试key
    redis 127.0.0.1:6379> set oldkey "hello"
    OK
    redis 127.0.0.1:6379> set newkey "world"
    OK
    #由于newkey已经存在,因此该命令未能成功执行。
    redis 127.0.0.1:6379> renamenx oldkey newkey
    (integer) 0
    #查看newkey的值,发现它也没有被renamenx覆盖。
    redis 127.0.0.1:6379> get newkey
    "world"
 #为后面的示例准备的测试数据。
    redis 127.0.0.1:6379> set mykey "hello"
    OK
    #将该键的超时设置为100秒。
    redis 127.0.0.1:6379> expire mykey 100
    (integer) 1
    #通过ttl命令查看一下还剩下多少秒。
    redis 127.0.0.1:6379> ttl mykey
    (integer) 97
    #立刻执行persist命令,该存在超时的键变成持久化的键,即将该Key的超时去掉。
    redis 127.0.0.1:6379> persist mykey
    (integer) 1
    #ttl的返回值告诉我们,该键已经没有超时了。
    redis 127.0.0.1:6379> ttl mykey
    (integer) -1
    #为后面的expire命令准备数据。
    redis 127.0.0.1:6379> del mykey
    (integer) 1
    redis 127.0.0.1:6379> set mykey "hello"
    OK
    #设置该键的超时被100秒。
    redis 127.0.0.1:6379> expire mykey 100
    (integer) 1
    #用ttl命令看一下当前还剩下多少秒,从结果中可以看出还剩下96秒。
    redis 127.0.0.1:6379> ttl mykey
    (integer) 96
    #重新更新该键的超时时间为20秒,从返回值可以看出该命令执行成功。
    redis 127.0.0.1:6379> expire mykey 20
    (integer) 1
    #再用ttl确认一下,从结果中可以看出果然被更新了。
    redis 127.0.0.1:6379> ttl mykey
    (integer) 17
    #立刻更新该键的值,以使其超时无效。
    redis 127.0.0.1:6379> set mykey "world"
    OK
    #从ttl的结果可以看出,在上一条修改该键的命令执行后,该键的超时也无效了。
    redis 127.0.0.1:6379> ttl mykey
    (integer) -1

事物,主从配置,备份与恢复,键值的生命周期, 集群分片,java程序操作redis待续........
分享到:
评论

相关推荐

    Linux 系统 安装redis redis-5.0.1.tar.gz 安装包

    在Linux系统中安装Redis是一个常见的任务,特别是在搭建服务器或开发基于Redis的数据缓存应用时。Redis是一个开源的、高性能的键值对存储系统,适用于数据缓存、消息队列等多种场景。本文将详细介绍如何在Linux上...

    redis在linux的安装包和安装步骤

    以上就是使用`redis-4.0.6.tar.gz`在Linux上安装Redis的基本步骤。安装完成后,你可以参考提供的`redis 安装.txt`文件或其他相关资料,了解如何进一步配置和管理Redis实例。在实际使用过程中,可能还需要了解Redis的...

    linux系统redis免安装版

    以上就是关于“Linux系统Redis免安装版”的详细知识讲解,涵盖了Redis的基本概念、免安装版的优势、压缩包文件解析以及Redis的使用、管理和优化等方面的内容。希望这些信息能帮助你更好地理解和运用Redis。

    Redis6.0.5 Linux安装、附集群笔记.rar

    在Linux CentOS 7环境下安装Redis 6.0.5,需要遵循以下步骤: 一、环境准备 确保系统为最新状态,并安装必要的开发工具: ```bash sudo yum update -y sudo yum groupinstall "Development Tools" -y ``` 二、下载...

    redis linux系统安装和操作

    在安装 Redis 之前,需要确保系统中已经安装了必要的库和工具,例如 GCC、Make 等。下载 Redis 的安装包可以从官方网站下载,也可以使用 Linux 系统的包管理器,例如 yum 或 apt-get。 编译安装 Redis 需要执行以下...

    linux中redis安装包和redis-desktop-manager-0.9.3.817

    本文将详细讲解如何在Linux上安装Redis,包括Redis 4.0.2和5.0.0两个版本,以及如何配合使用Redis Desktop Manager进行图形化管理。 首先,我们来了解Redis的基本概念。Redis是一个基于内存的数据结构存储系统,...

    linux免安装 redis

    Linux系统中的Redis是一...以上就是“linux免安装 redis”相关的知识要点,包括如何在Linux环境中快速部署和启动Redis服务,以及其基本操作和特性。了解并掌握这些内容,将有助于高效利用Redis进行数据管理和服务搭建。

    linux-redis绿色版(推荐)

    Linux下的Redis是一个高效、开源的键值存储系统,常用于数据缓存、消息队列以及数据库等场景。...通过了解并掌握Redis的基本操作和配置,你可以充分利用其性能优势,提高应用程序的效率和响应速度。

    linux下redis安装步骤

    通过上述步骤,我们已经完成了在 Linux 环境下 Redis 的安装和基本配置。需要注意的是,在实际部署过程中,可能还需要根据具体的应用需求进一步调整 Redis 的配置参数,比如设置持久化方式、调整最大内存限制等。...

    Redis4.0安装(Linux版)

    7. **Redis的基本操作** Redis支持多种数据类型,如字符串(Strings)、哈希(Hashes)、列表(Lists)、集合(Sets)和有序集合(Sorted Sets)。例如,你可以: - 设置键值对:`SET key value` - 获取值:`GET key` - ...

    redis-7.0.7_linux_x86.tar.gz

    在本案例中,我们讨论的是Redis的7.0.7版本针对Linux x86架构的安装包,文件名为"redis-7.0.7_linux_x86.tar.gz"。这个压缩包已经为Linux_x86环境进行了编译,用户可以直接解压并部署到相应的系统中,无需额外的编译...

    redis安装包for linux

    Redis是一款高性能的键值对数据库,常用于缓存、消息...以上就是使用Redis-3.2.11在Linux环境下安装和使用的基本流程。随着Redis的更新迭代,新的功能和优化会不断加入,建议保持关注最新版本以获取最佳性能和新特性。

    linux redis安装(redis-2.6.14.tar.gz)

    本教程将详细讲解如何在Linux环境下安装Redis 2.6.14版本,并介绍一些基本的Redis命令。 首先,确保你的Linux系统已经安装了必要的编译工具,如GCC和Make。通常,你可以通过以下命令安装: ```bash sudo apt-get ...

    phpredis 用于 linux 下扩展

    2. **基本操作**:使用`set`和`get`方法进行键值对的设置和读取: ```php $redis-&gt;set('key', 'value'); $value = $redis-&gt;get('key'); ``` 3. **复杂操作**:PHPRedis还支持哈希(`hSet`, `hGetAll`等)、列表...

    redis在linux下的集群安装.rar-软件与带有操作视频

    以下将详细介绍如何在Linux上进行Redis集群的安装和配置。 首先,你需要准备多台Linux服务器(至少3台,因为Redis集群至少需要3个主节点来保证数据的容错)。确保所有服务器之间网络连通,并且已安装了基本的开发...

    redis安装资源(win/linux)

    在安装完成后,您可以在开始菜单中找到Redis服务的启动和停止选项。Windows版Redis还包括了一个图形界面工具,它可以帮助用户更直观地管理和操作数据库。这个工具位于解压后的目录中,打开它,你可以看到键值对、...

    CentOS7 linux下yum安装redis以及使用

    本文将详细介绍如何在 CentOS7 系统上通过 YUM 包管理器安装 Redis,并进行基本的配置和使用。 #### 一、安装 Redis ##### 1. 检查是否有 Redis Yum 源 在 CentOS7 上安装 Redis 需要确保系统中有可用的 Yum 源。...

    Redis3.0-Linux下安装与使用.zip

    在Linux环境下安装Redis3.0,不仅可以利用Linux的稳定性,还可以更好地优化Redis的性能。本教程将详细讲解如何在Linux上安装Redis3.0以及如何在Java环境中使用Jedis客户端。 首先,我们来了解Redis3.0在Linux上的...

    redis linux安装包3.2 及window包

    无论是在 Linux 还是 Windows 上,了解 Redis 的基本概念和操作命令是十分重要的,如 `SET`, `GET`, `KEYS`, `EXPIRE`, `PUBLISH`, `SUBSCRIBE` 等,这些都是 Redis 功能的基础。同时,理解 Redis 的数据结构(如 ...

    Linux下安装redis,内附安装文档,包含redis的前置环境gcc安装

    通过以上步骤,你不仅学会了安装Redis,还掌握了在Linux上安装GCC的基本操作。在实际应用中,可以根据需求进一步配置Redis,例如设置密码认证、主从复制、持久化策略等,以满足不同场景的需求。

Global site tag (gtag.js) - Google Analytics