Redis有着更为复杂的数据结构并且提供对他们的原子性操作,这是一个不同于其他数据库的进化路径。Redis的数据类型都是基于基本数据结构的同时对程序员透明,无需进行额外的抽象。
Redis运行在内存中但是可以持久化到磁盘,所以在对不同数据集进行高速读写时需要权衡内存,因为数据量不能大于硬件内存。在内存数据库方面的另一个优点是, 相比在磁盘上相同的复杂的数据结构,在内存中操作起来非常简单,这样Redis可以做很多内部复杂性很强的事情。 同时,在磁盘格式方面他们是紧凑的以追加的方式产生的,因为他们并不需要进行随机访问。
redis配置
CONFIG SET 命令基本语法:
redis 127.0.0.1:6379> CONFIG SET CONFIG_SETTING_NAME NEW_CONFIG_VALUE
实例
redis 127.0.0.1:6379> CONFIG SET loglevel “notice”
OK
redis 127.0.0.1:6379> CONFIG GET loglevel
- “loglevel”
- “notice”
Ubuntu 下安装
在 Ubuntu 系统安装 Redi 可以使用以下命令:$sudo apt-get update
$sudo apt-get install redis-server
启动 Redis
$ redis-server
查看 redis 是否启动?
$ redis-cli以上命令将打开以下终端:redis 127.0.0.1:6379>127.0.0.1 是本机 IP ,6379 是 redis 服务端口
现在我们输入 PING 命令。redis 127.0.0.1:6379> pingPONG
启动操作:
输入:
redis-server.exe redis.windows.conf
redis-cli.exe
shutdown
exit
redis-server.exe redis.windows.conf
设置密码L:
cd C:\Program Files\Redis
C:\Program Files\Redis>redis-cli.exe
127.0.0.1:6379> config get requirepass
- “requirepass”
- “”
127.0.0.1:6379> redis-cli -p 6379 -a 123 (error) ERR unknown command ‘redis-cli’
127.0.0.1:6379> config get requirepass 1) “requirepass” 2) “”
127.0.0.1:6379> config set requirepass 123
OK
如图:
查询操作:
config get requirepass
返回:
- “requirepass”
- “”
设置:
config set requirepass 123
redis数据类型
Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。
String(字符串)
string是redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个value。
redis 127.0.0.1:6379> SET name “shouce.ren”
OKredis 127.0.0.1:6379> GET name"shouce.ren"
string类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象 。
Redis hash 是一个键值对集合。
Redis hash是一个string类型的field和value的映射表,hash特别适合用于存储对象。
string类型是Redis最基本的数据类型,一个键最大能存储512MB。
zset(sorted set:有序集合)
Redis zset 和 set 一样也是string类型元素的集合,且不允许重复的成员。
不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。
zset的成员是唯一的,但分数(score)却可以重复。
zadd 命令
添加元素到集合,元素在集合中存在则更新对应score
zadd key score member
实例
redis 127.0.0.1:6379> zadd shouce.ren 0 redis
(integer) 1
redis 127.0.0.1:6379> zadd shouce.ren 0 mongodb
(integer) 1
redis 127.0.0.1:6379> zadd shouce.ren 0 rabitmq
(integer) 1
redis 127.0.0.1:6379> zadd shouce.ren 0 rabitmq
(integer) 0
redis 127.0.0.1:6379> ZRANGEBYSCORE shouce.ren 0 1000
- “redis”
- “mongodb”
- “rabitmq”