redis_1

启动
启动服务端

./redis-server

指定要加载的配置文件
./redis-server ../redis.conf

默认情况下,redis-server会以非daemon的方式来运行,且默认服务端口为6379。
启动客户端
./redis-cli

//用set指令来设置key、value
127.0.0.1:6379> set name "roc" OK

//来获取name的值
127.0.0.1:6379> get name "roc"

//通过客户端来关闭redis服务端
127.0.0.1:6379> shutdown 127.0.0.1:6379>

数据结构
redis是一种高级的key:value存储系统,其中value支持五种数据类型:
1.字符串(strings)
2.字符串列表(lists)
3.字符串集合(sets)
4.有序字符串集合(sorted sets)
5.哈希(hashes)
而关于key,一下几点需要注意:
1.key不要太长,尽量不要超过1024字节,这不仅消耗内存,而且会降低查找的效率;
2.key也不要太短,太短的话,key的可读性会降低;
3.在一个项目中,key最好使用统一的命名模式,例如user:10000:passwd。
字符串 strings类型是一个很基础的数据类型
set mystr "hello world!" //设置字符串类型 get mystr //读取字符串类型

字符串可以进行数值操作
redis_1
文章图片
incr_num.png
在遇到数值操作时,redis会将字符串类型转换成数值。由于INCR等指令本身就具有原子操作的特性,所以我们完全可以利用redis的INCR、INCRBY、DECR、DECRBY等指令来实现原子计数的效果
list redis中的lists在底层实现上并不是数组,而是链表。对于一个具有上百万个元素的lists来说,在头部和尾部插入一个新元素,其时间复杂度是常数级别的,比如用LPUSH在10个元素的lists头部插入新元素,和在上千万元素的lists头部插入新元素的速度应该是相同的。链表型lists的元素定位会比较慢,而数组型lists的元素定位就会快得多。
lists的常用操作包括LPUSH、RPUSH、LRANGE等。我们可以用LPUSH在lists的左侧插入一个新元素,用RPUSH在lists的右侧插入一个新元素,用LRANGE命令从lists中指定一个范围来提取元素。
127.0.0.1:6379> lpush tlist "1" (integer) 1 127.0.0.1:6379> rpush tlist "2" (integer) 2 127.0.0.1:6379> lpush tlist "0" (integer) 3 127.0.0.1:6379> lrange tlist 0 1 1) "0" 2) "1" 127.0.0.1:6379> lrange tlist 0 -1 1) "0" 2) "1" 3) "2" 127.0.0.1:6379>

lists的应用相实例:
1.我们可以利用lists来实现一个消息队列,而且可以确保先后顺序,不必像MySQL那样还需要通过ORDER BY来进行排序。
2.利用LRANGE还可以很方便的实现分页的功能。
3.在博客系统中,每片博文的评论也可以存入一个单独的list中。
set redis的集合,是一种无序的集合。集合相关的操作也很丰富,如添加新元素、删除已有元素、取交集、取并集、取差集等
127.0.0.1:6379> sadd tset "one" (integer) 1 127.0.0.1:6379> sadd tset "two" (integer) 1 127.0.0.1:6379> smembers tset 1) "one" 2) "two" 127.0.0.1:6379> sismember tset "one" (integer) 1 127.0.0.1:6379> sismember tset "one1" (integer) 0 127.0.0.1:6379> sunion tset tset//求并集

zset 有序集合(sorted sets)。有序集合中的每个元素都关联一个序号(score),这便是排序的依据。我们都将redis中的有序集合叫做zsets,这是因为在redis中,有序集合相关的操作指令都是以z开头的,比如zrange、zadd、zrevrange、zrangebyscore等等
127.0.0.1:6379> zadd tzset 1 "baidu" (integer) 1 127.0.0.1:6379> zadd tzset 3 "360" (integer) 1 127.0.0.1:6379> zrange tzset 0 -1 1) "baidu" 2) "360" 127.0.0.1:6379> zrange tzset 0 -1 withscores 1) "baidu" 2) "1" 3) "360" 4) "3" 127.0.0.1:6379>

hash 【redis_1】用于处理对象数据
127.0.0.1:6379> hmset user:001 username huben password 123456 OK 127.0.0.1:6379> hgetall user:001 1) "username" 2) "huben" 3) "password" 4) "123456" 127.0.0.1:6379> hset user:001 password 12345678 (integer) 0 127.0.0.1:6379> hgetall user:001 1) "username" 2) "huben" 3) "password" 4) "12345678" 127.0.0.1:6379>

    推荐阅读