Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。
Redis 与其他 key - value 缓存产品有以下三个特点:
Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
Redis支持数据的备份,即master-slave模式的数据备份。
 主要能够体现 解决数据库的访问压力。
   例如:短信验证码时间有效期、session共享解决方案
性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s 。
丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。
原子 – Redis的所有操作都是原子性的,同时Redis还支持对几个操作全并后的原子性执行。
丰富的特性 – Redis还支持 publish/subscribe, 通知, key 过期等等特性。
Redis有着更为复杂的数据结构并且提供对他们的原子性操作,这是一个不同于其他数据库的进化路径。Redis的数据类型都是基于基本数据结构的同时对程序员透明,无需进行额外的抽象。
Redis运行在内存中但是可以持久化到磁盘,所以在对不同数据集进行高速读写时需要权衡内存,因为数据量不能大于硬件内存。在内存数据库方面的另一个优点是,相比在磁盘上相同的复杂的数据结构,在内存中操作起来非常简单,这样Redis可以做很多内部复杂性很强的事情。同时,在磁盘格式方面他们是紧凑的以追加的方式产生的,因为他们并不需要进行随机访问。
 新建start.bat 批处理文件、内容: redis-server.exe redis.windows.conf
  双击start.bat启动
  修改密码 # requirepass foobared  修改为requirepass 123456
  注意:修改密码的时候前面不要加空格
Redis的官方下载网址是:http://redis.io/download  (这里下载的是Linux版的Redis源码包)
Redis服务器端的默认端口是6379。
这里以虚拟机中的Linux系统如何安装Redis进行讲解。
 在windows系统中下载好Redis的源码包。
1. 通过WinSCP工具,将Redis的源码包由windows上传到Linux系统的这个目录/opt/redis (即根目录下的lamp文件夹)。
2. 解压缩。           
tar -zxf redis-2.6.17.tar.gz
3. 切换到解压后的目录。
cd redis-2.6.17            ( 一般来说,解压目录里的INSTALL文件或README文件里写有安装说明,可参考之)
4. 编译。
make        
(注意,编译需要C语言编译器gcc的支持,如果没有,需要先安装gcc。可以使用rpm -q gcc查看gcc是否安装)
(利用yum在线安装gcc的命令    yum -y install gcc )
(如果编译出错,请使用make clean清除临时文件。之后,找到出错的原因,解决问题后再来重新安装。 )
5. 进入到src目录。       
cd src
6. 执行安装。
make install    
到此就安装完成。但是,由于安装redis的时候,我们没有选择安装路径,故是默认位置安装。在此,我们可以将可执行文件和配置文件移动到习惯的目录。
cd /usr/local
mkdir -p /usr/local/redis/bin    
mkdir -p /usr/local/redis/etc
cd /lamp/redis-2.6.17
cp ./redis.conf /usr/local/redis/etc
cd src
cp mkreleasehdr.sh redis-benchmark redis-check-aof redis-check-dump redis-cli redis-server redis-sentinel /usr/local/redis/bin
7.开放linux 6379 端口
1.编辑 /etc/sysconfig/iptables 文件:vi /etc/sysconfig/iptables
加入内容并保存:-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 6379 -j ACCEPT
2.重启服务:/etc/init.d/iptables restart
3.查看端口是否开放:/sbin/iptables -L -n
比较重要的3个可执行文件:
redis-server:Redis服务器程序
redis-cli:Redis客户端程序,它是一个命令行操作工具。也可以使用telnet根据其纯文本协议操作。
redis-benchmark:Redis性能测试工具,测试Redis在你的系统及配置下的读写性能。
/usr/local/redis/bin/redis-server
或
cd /usr/local/redis/bin
./redis-server /usr/local/redis/etc/redis.conf    为redis-server指定配置文
daemonize yes --- 修改为yes  后台启动
requirepass 123456  ----注释取消掉设置账号密码
ps aux | grep ‘6379‘  --- 查询端口
kill -15 9886 --- 杀死重置
kill -9 9886 --- 强制杀死
service iptables stop 停止防火墙
./redis-cli -h 127.0.0.1 -p 6379 -a "123456" --- redis 使用账号密码连接
PING 结果表示成功
redis-cli shutdown 或者 kill redis进程的pid
使dejibenshu用redisclient-win32.x86.1.5

在上面的例子中,SET和GET是redis中的命令,而mykey是键的名称。
Redis字符串命令用于管理Redis中的字符串值。以下是使用Redis字符串命令的语法。

在上面的例子中,SET和GET是redis中的命令,而mykey是键的名称。
下表列出了一些用于在Redis中管理字符串的基本命令
| 编号 | 命令 | 描述说明 | 
| 1 | 此命令设置指定键的值。 | |
| 2 | 获取指定键的值。 | |
| 3 | 获取存储在键上的字符串的子字符串。 | |
| 4 | 设置键的字符串值并返回其旧值。 | |
| 5 | 返回在键处存储的字符串值中偏移处的位值。 | |
| 6 | 获取所有给定键的值 | |
| 7 | 存储在键上的字符串值中设置或清除偏移处的位 | |
| 8 | 使用键和到期时间来设置值 | |
| 9 | 设置键的值,仅当键不存在时 | |
| 10 | 在指定偏移处开始的键处覆盖字符串的一部分 | |
| 11 | 获取存储在键中的值的长度 | |
| 12 | 为多个键分别设置它们的值 | |
| 13 | 为多个键分别设置它们的值,仅当键不存在时 | |
| 14 | 设置键的值和到期时间(以毫秒为单位) | |
| 15 | 将键的整数值增加1 | |
| 16 | 将键的整数值按给定的数值增加 | |
| 17 | 将键的浮点值按给定的数值增加 | |
| 18 | 将键的整数值减1 | |
| 19 | 按给定数值减少键的整数值 | |
| 20 | 将指定值附加到键 | 
列表类型(List)
Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)
一个列表最多可以包含 232 - 1 个元素 (4294967295, 每个列表超过40亿个元素)。

Redis 列表命令
下表列出了列表相关的基本命令:
| 序号 | 命令及描述 | 
| 1 | BLPOP key1 [key2 ] timeout  | 
| 2 | BRPOP key1 [key2 ] timeout  | 
| 3 | BRPOPLPUSH source destination timeout  | 
| 4 | LINDEX key index  | 
| 5 | LINSERT key BEFORE|AFTER pivot value  | 
| 6 | LLEN key  | 
| 7 | LPOP key  | 
| 8 | LPUSH key value1 [value2]  | 
| 9 | LPUSHX key value  | 
| 10 | LRANGE key start stop  | 
| 11 | LREM key count value  | 
| 12 | LSET key index value  | 
| 13 | LTRIM key start stop  | 
| 14 | RPOP key  | 
| 15 | RPOPLPUSH source destination  | 
| 16 | RPUSH key value1 [value2]  | 
| 17 | RPUSHX key value  | 
原文:https://www.cnblogs.com/dabrk/p/12119980.html